混合开发集成两种方式:
1、官网方式 https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps#experiment-integrate-flutterviewcontroller
2、抽取Flutter,第三方库的方式
本文主要介绍第二种方式,如下:
借鉴咸鱼《Flutter混合工程改造实践》的实践,抽取Flutter依赖到远程的一些实现细节。
本文先介绍如何混合开发
Native工程对Flutter 工程的依赖主要如下:
1、Flutter.framework (库和引擎)
2、App.framework(lib下的dart文件)
3、自己实现的Flutter Plugin(我目前没做插件开发,先忽略)
4、Flutter工程产物:isolate_snapshot_data、isolate_snapshot_instr、vm_snapshot_data、vm_snapshot_instr、flutter_assets
以iOS 为例集成老项目中:首先执行flutter build ios -release
1、在Native创建Flutter文件夹,在你的Flutter项目找到以下路径文件
XXX/ios/Flutter

2、复制以上所有文件,粘贴到Native创建的Flutter文件夹下
3、在Xcode中,通过 Add File to "Flutter" 方式,将文件引用到目录。注意:

4、添加打包资源
- Build Phases->Copy Bundle Resources下添加flutter_assets,这个目录保护所有的flutter脚本和资源
- Build Phases下点”+”创建一个New Copy Files Phase,Destination选择Frameworks, name下添加app.framework和flutter.framework, 这步不成功提示找不到flutter image
问题1:无法模拟器上运行的问题
答:将kernel_blob.bin放入flutter_assets下。kernel_blob.bin位置如下:XXX/ios/Runner.xcworkspace ,用Xcode打开Runner.xcworkspace,在打开项目的flutter_assets下。
(目前没有找到好的方法,欢迎提供)
问题2:不成功提示 flutter image
答:上边第4步。
问题3:Bitcode
答: 关闭Bitcode, build Settings->enable Bitcode Yes改为no
参考文献及出处
https://blog.csdn.net/langouster/article/details/81566348
https://blog.csdn.net/u010960265/article/details/81533732
https://yq.aliyun.com/articles/618599#comment
网友评论