美文网首页
iOS集成 Flutter 混合工程开发一

iOS集成 Flutter 混合工程开发一

作者: beyond峰 | 来源:发表于2018-11-21 18:32 被阅读266次

混合开发集成两种方式:

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

如图: 5B252264-047C-4821-85B3-FC24A00C8FB7.png
2、复制以上所有文件,粘贴到Native创建的Flutter文件夹下
3、在Xcode中,通过 Add File to "Flutter" 方式,将文件引用到目录。注意:
7382DAA2-8380-4AE7-9A10-E99DF824C8C3.png

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

相关文章

网友评论

      本文标题:iOS集成 Flutter 混合工程开发一

      本文链接:https://www.haomeiwen.com/subject/fsgcqqtx.html