如何将本地框架添加到iOS的Flutter插件中

时间:2018-01-17 20:48:52

标签: ios plugins cocoapods flutter

所以,我已经挣扎了一段时间,将第三方框架嵌入到我为iOS编写的Flutter插件中。

该插件非常简单,主要是将呼叫和事件转发到第三方框架或从第三方框架转发。

问题中的第三方框架用于控制Sphero机器人(RobotKit.framework) 这个特定的框架是一个伞形框架,其中有几个子框架。

要在我的插件中包含此.framework,我已经尝试了很多组合

preserve_paths
vendored_frameworks
resource
xcconfig

在.podspec文件中链接到RobotKit.framework包(灵感来自blog),但没有运气。

我可以用

  

vendored_frameworks =' Frameworks / RobotKit.framework'

让Xcode检测包并导入头文件,但是在构建时我得到一个链接到其中一个子框架中的头文件的错误(RobotKitClassic是一个子框架):

fatal error: 'RobotKitClassic/RobotKitClassic.h' file not found #import <RobotKitClassic/RobotKitClassic.h>

我是以错误的方式接近这个,还是有一个我不知道的伎俩?

2 个答案:

答案 0 :(得分:1)

如果您的案例是嵌套框架以在app中使用结果,那么在IOS中不允许嵌套框架,这里来自苹果论坛,我遇到了错误,例如无法加载frameWork @rpath来执行此操作所有代码在动态框架中必须是纯代码而不是pod或插件

enter image description here

答案 1 :(得分:1)

我最终通过直接在我的主应用程序项目中实现插件功能而不是单独的Flutter插件来解决这个问题。

这样做,我可以将RobotKit框架添加到Runner项目中,它可以链接,构建和运行。