首页 > 解决方案 > 将 Pod 依赖项添加到 Flutter 插件类

问题描述

最后我得到了一个自定义的 Flutter Plugin 的 MethodChannel 来做 hello-world。

但是现在,我想显式地向 Plugin 类的 iOS 部分添加一个依赖项(显然不是 Android 部分......)。

然而,由于 Plugin 类本身就是 Flutter Pod 的一部分,所以这在它的故事中以某种方式咬住了蛇。那么这是如何工作的呢?

我在 /iOS/Podfile 中添加了以下内容

target 'Runner' do
  use_frameworks!

  pod `MyPodDependency`

代码编译。

但是import MyPodDependency失败了。(在我还public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {...}编写代码的插件类中,可在 ../Pod/../../../../ios/Classes/MyPluginClass.swift 下找到)

我的问题:如何在 Flutter Plugin-Class 的 iOS 部分中导入 MyPodDependency?

我需要在哪个 Podfile 中添加我的 pod。

我可以在插件类(FlutterMethodCall 的句柄方法所在的位置)中使用任何导入的框架吗?如果是,如何???

标签: iospluginsflutterdependenciespodfile

解决方案


您必须记住,插件必须在任何项目中工作,而不仅仅是在您的项目中。这就是为什么它的依赖不应该在你项目的 pod 文件中,而是包含在它自己的依赖文件中,否则,每个人都必须手动添加项目中使用的所有插件的每个依赖项。

也就是说,您的插件依赖项必须在 .podspec 文件中引用,该文件位于插件的 /ios 目录中。这将在您在项目中运行“pod install”时执行,获取插件所需的所有外部依赖项。如果您查看现有文件,它已经存在一个依赖项:

s.dependency 'Flutter'

按照示例并在下面添加您的其他插件依赖项。

最后,您必须将插件添加到您的 Flutter 项目中。只需将其添加到 pubspec 文件中,就像使用所有其他插件一样。


推荐阅读