【问题标题】:Add Pod dependency to a Flutter Plugin Class将 Pod 依赖项添加到 Flutter 插件类
【发布时间】:2019-06-05 20:07:20
【问题描述】:

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

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

但是,由于插件类本身就是 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?

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

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

【问题讨论】:

  • 我在 Flutter 插件中尝试使用本地 .framework 时遇到了同样的问题。你找到解决办法了吗?

标签: ios plugins flutter dependencies podfile


【解决方案1】:

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

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

s.dependency 'Flutter'

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

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

【讨论】:

  • 如何从 git 添加依赖项?我需要将pod 'SDK-iOS', :git => "https://github.com/cloudpayments/SDK-iOS", :branch => "master" 添加到我的插件中。但似乎 .podspec 文件不允许我这样做。
猜你喜欢
  • 2018-06-03
  • 2019-07-26
  • 2016-03-28
  • 1970-01-01
  • 2012-11-28
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多