首先flutter集成进原生,也就是使用Flutter Module的方式,官方提供了三种方案,之前一直使用的方案一,使用CocoaPods的方式,将flutter项目和原生项目放在同一目录下,很方便,不过使用的组员必须都配置flutter环境,如果团队很多人都会用到这个项目,但他可能就只负责iOS原生的部分,就不是很友好了。这时候我们可以通过打包后生成私有库的形式引入即可。
打包成framework
我们创建好Flutter Module工程后,在flutter工程目录下执行命令
flutter build ios-framework --output=/Users/li/Desktop/framework
在指定目录下生成framework,这时候你会看到他生成了三个文件夹。我们这里先选择Debug下面的。一般里面一定会有一个App.xcframework和一个Flutter.xcframework,因为我项目里用到了插件,所以多了些。
上传到私有库
这时候我们将Debug文件夹下面的所以内容copy出来放到pod私有仓库指定目录(这里需要注意我们不再是放在class目录下了,如下图所示),podspec文件里需要添加
s.static_framework = true
s.vendored_frameworks = "flutter_lib/*.xcframework"
s.pod_target_xcconfig = { "VALID_ARCHS" => "x86_64 armv7 arm64" } #设置支持的架构
之后我们就可以使用私有库的形式引入flutter,不需要安装flutter环境了,这里应该也可以脚本在提交flutter代码后自动打包,感兴趣的朋友可以研究下。
补充
如果开发阶段还是建议使用CocoaPods的形式,方便修改调试,如果其他私有库需要使用Flutter,比如封装的桥接组件,记得添加依赖
s.dependency 'Flutter'