ios - 将 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 的句柄方法所在的位置)中使用任何导入的框架吗?如果是,如何???
解决方案
您必须记住,插件必须在任何项目中工作,而不仅仅是在您的项目中。这就是为什么它的依赖不应该在你项目的 pod 文件中,而是包含在它自己的依赖文件中,否则,每个人都必须手动添加项目中使用的所有插件的每个依赖项。
也就是说,您的插件依赖项必须在 .podspec 文件中引用,该文件位于插件的 /ios 目录中。这将在您在项目中运行“pod install”时执行,获取插件所需的所有外部依赖项。如果您查看现有文件,它已经存在一个依赖项:
s.dependency 'Flutter'
按照示例并在下面添加您的其他插件依赖项。
最后,您必须将插件添加到您的 Flutter 项目中。只需将其添加到 pubspec 文件中,就像使用所有其他插件一样。
推荐阅读
- java - How to Pre Process Json String in Java :: Convert Capitalised Field names to lowerCase Camel case names
- b2b - 实施tripadvisor旅行者评级
- java - 从firebase检索多个数据返回null
- c++ - 在递归函数中声明一个静态变量。堆栈溢出
- ms-access - 将数据表从 Access 2003 转移到 2013
- objective-c - 如何使用地址(指针)从 lldb 调用 swift 函数?
- html - 菜单文本长中断 - 适合下一行
- google-cloud-platform - 使用 Google Genomics Pipelines CLI 自定义机器类型
- c - Lex 程序不执行任何操作
- svg - Safari 中带有非虚线标记的 SVG 虚线