【问题标题】:How to add a local framework to a Flutter plugin for iOS如何将本地框架添加到 iOS 的 Flutter 插件
【发布时间】:2018-06-26 20:15:38
【问题描述】:

因此,我一直在努力将第三方框架嵌入到我为 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>

我是不是以错误的方式接近这个,还是我错过了一个技巧?

【问题讨论】:

    标签: ios plugins cocoapods flutter


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      如果您的案例是嵌套框架以在应用程序中使用结果,那么在 IOS 中不允许嵌套框架,这里来自苹果论坛,我遇到了错误,例如 can't load frameWork @rpath to do this all code in dynamic framework must是纯代码而不是 pod 或插件

      【讨论】:

      • 澄清几点:我不是自己构建 .framework,只是尝试在我的 Flutter 插件中使用它。此外,当在常规 iOS Xcode 项目 (ObjC) 中使用相同的第三方(伞形)框架时,它可以毫无问题地构建和运行。
      • 不允许使用或创建相同的嵌套所有必须是纯代码没有子框架
      • umberalla 如果框架内的内容是纯代码就可以工作,要尝试它,尝试创建一个动态框架并在其中使用 pod 并在任何示例应用程序中获取结果框架,应用程序将看不到吊舱框架
      猜你喜欢
      • 2021-11-11
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 2013-01-28
      • 2019-06-17
      相关资源
      最近更新 更多