【问题标题】:How to import external iOS framework in flutter plugin?如何在flutter插件中导入外部iOS框架?
【发布时间】:2019-06-17 03:33:45
【问题描述】:

我正在使用 RTSP 协议为流视频制作 flutter 插件。我为Android开发它没有问题,但在iOS中事情更复杂。我必须使用外部库 (SGPlayer) 来让播放器工作。我还下载了使用这个库的演示,似乎可以工作。这个库不在 Cocoapods 上,我需要将它从我的文件系统中直接导入到插件项目中。我想使用的插件的下载和编译文件结构如下所示:

我的问题是将“.framework”扩展文件正确添加到 iOS 项目中,以便我可以使用它来开发 Flutter 插件(iOS 部分)。

更新: 我使用此链接中的说明使用框架构建了项目:https://github.com/flutter/flutter/issues/17978

现在的问题是,在编译框架时它会更改伞头,因为我认为它没有使用框架 module.modulemap 而是另一个。结果是只导入了一些标头和实现,而不是全部。

【问题讨论】:

  • 您好,有什么解决办法吗?
  • 对不起伙计,我把所有部分都移到了主项目中,放弃了创建插件的想法。我没有时间在工作中找到解决这个问题的方法。

标签: ios xcode flutter cocoapods ios-frameworks


【解决方案1】:

1.将myFramework.framework放到iOS插件文件夹/ios ex: myPlugin/ios

2.更新iOS插件文件:myPlugin/ios/myPlugin.podspec 在文件底部的“end”上方添加以下行

s.vendored_frameworks = 'myFramework.framework'

在终端:cd to myPlugin/example/ios 运行命令

pod install

pod update

现在我们可以通过在XCode中打开iOS项目(example/ios/Runner.xcworkspace)找到iOS插件代码并进入

【讨论】:

    【解决方案2】:

    @Lorenzo 你可以打包你的插件并制作私有的 CocoaPod 或 Carthage repo。 Here is好文章howtos

    【讨论】:

    • 首先感谢您的回答!目前,我有一个新问题,为了让事情正常进行,我必须使用我在答案更新中提到的 Github 页面中找到的脚本来导入本地框架。问题是我必须从 Podfile 中删除 use_frameworks!,如果我愿意,现在我不可能使用 Swift Pod,但是如果我离开它,然后我尝试运行应用程序,我会遇到很多错误。在这一点上,我的问题是:是否可以在 Swift 插件中使用 Objective-c pod? .podspec 和 Podfile 设置如何?
    • 嘿,但是创建私有 CocoaPod 存储库的 IDEA 是什么?我应该创建私有 CocoaPod,然后如何将我的本地 .framework 与该 CocoaPod 存储库连接起来?
    猜你喜欢
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多