我们已经构建了一个很棒的 Flutter项目,该项目具有强大的功能,我们希望将其导出作为框架,就像原生库,以便隐藏源代码(转换为动态框架)。
我们已按照说明进行操作:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps
这允许我们将Flutter项目包含在Host iOS应用中,初始化FlutterEngine
和使用FlutterViewController
。
问题是,我们如何创建动态框架,例如 SomeProductSDK.framework ,它将公开一种公共方法来创建与我们相关的 SomeProductSDK 模式屏幕?
// In any app
import SomeProductSDK
let controller = TransactionViewController() // SomeProductSDK.framework with partial implementation with flutter
self.present(controller, animated: true)
答案 0 :(得分:4)
我已经部分实现了您想要的。所有这些都是非常实验性的,对于生产就绪的SDK而言,总体而言是个坏主意。但是...有可能。
+ (void)launchFrom:(UIViewController *)parent
创建Launcher类,这将创建FlutterViewController并将其显示。xcodebuild archive
。答案 1 :(得分:1)
为了将框架导出为本地库,您必须确保将使用框架(用户)的用户的计算机上安装了Flutter SDK,因为您的框架代码肯定会依赖Flutter SDK,默认。因此,您要做的等同于在pub.dev上拥有自己的软件包。
如果找到某种方法来制作要导出的框架-独立于Flutter的框架,则只有将其导出为框架才有意义。 (这样做毫无疑问是可能的,但是要看到为使框架实现所需的工作量和时间。您可以在同样的时间和精力下构建自己的Flutter框架)
由于您已经完成了很棒的 Flutter项目,因此,如果愿意,可以考虑将其作为软件包上传到https://pub.dev/。
建议:您可以要求要尝试安装软件包的用户安装Flutter。这样,您的辛苦便不会白费。
结论: 实现您的尝试实际上不可行。