最近单位项目涉及到了flutter混编,就去官方文档学习了一下,这里做一下简单记录,顺便翻译翻译。方便大家互相学习。
开始
首先必须有的条件
一个文件夹里包含iOS项目、Flutter项目
没有Flutter项目,请自行执行以下命令行
cd 项目路径
flutter create --template module my_flutter
如下图所示
Plan A
- 在iOS工程
Podfile
头部中添加
flutter_application_path = '../my_flutter'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
- 然后在添加
target 'MyApp' do
install_all_flutter_pods(flutter_application_path)
end
-
如图所示
pod install
Plan B 生成Framework 手动导入
cd 路径/my_flutter
flutter build ios-framework --output=这里拼接你想要输出framework的路径
- 此时在这个路径下会生成三个文件夹,分别是
Debug
、Profile
、Release
- 手动引入其中一个文件夹的
App.framework
及Flutter.framework
,并且BuildSetting -> Framework Search Paths
中,要有刚刚输出framework的路径,比如:"$(SRCROOT)/../Debug"
其实把文件夹拖进去也行,但是你要确定后续不会出现路径问题。
Plan C 类似 Plan B,用cocoapods
cd 路径/my_flutter
flutter build ios-framework --cocoapods --output=这里拼接你想要输出framework的路径
这时候也会生成三个文件夹,分别是
Debug
、Profile
、Release
,但是内容跟Plan B 不太一样-
然后在
PodFile
中添加这么一行,`pod 'Flutter', :podspec => 'some/path/MyApp/Flutter/[build mode]/Flutter.podspec'。如图所示,当然这里只是做演示,暂时没有考虑相对路径的问题!!请注意。 -
收到引入对应文件夹中的
App.framework
并且同Plan B中的第4、5步,做好确保