现有iOS工程引入flutter配置方式-记录问题和经验

现有iOS项目引入flutter模块。

方式一:直接cocoapods引入fluttermodule(flutter工程必须是module类型)工程的路径。

这个网上资料很多,也是flutter官网推荐的方式,可以参考这篇文章:https://www.jianshu.com/p/e3e689e77280  

优点是快,方便。  缺点是  原生项目和flutter项目 太过依赖

 

方式二:将flutter工程打包成framework,再放入iOS项目工程里。

可以参考文章:https://www.jianshu.com/p/bad5d57a086b 这里写的方式二

1. 命令行里,cd到flutter工程目录下,运行命令输出framwork:flutter build ios-framework --output=some/path/MyApp/Flutter/       可以加--no-profile 之类的 去掉一些打包项比如:

flutter build ios-framework --no-profile --output=/Users/yzx/Desktop/MyApp/Flutter

2. 在iOS工程的 target, Build Settings 里 找到 Framework Search Paths , 增加  $(PROJECT_DIR)/Flutter/$(CONFIGURATION)    这里不要选择debug或者release,而是编辑总体项自动选择 。 将Flutter文件要放在对应路径位置。PROJECT_DIR工程目录下。

3.把打包出来的Flutter文件里的所有动态链接库(随意选Debug或Release一个目录中的)(我选的是Release)拖入工程General -> Framework,Libraries那面板,设置为Embed & Sign(这一步我倒是没碰到,也不知道是不是最新fluttersdk的缘故)。(注意:静态库,比如FlutterPluginRegistrant.framework不要加入,否则不能上架AppStore,判断其他packge插件生成的framework是静态还是动态,请看官网给的链接

注意,FlutterPluginRegistrant.framework不要加入,我这边加入尝试,发现工程运行的时候提示 Unable to install  

4.编辑MyApp.xcodeproj/project.pbxproj文件:查找替换所有path = ../Flutter/Debug或Release/xx.framework;替换为path = "../Flutter/$(CONFIGURATION)/xx.framework";(注意添加引号 ")。可以根据Debug或Release编译时使用对应的framework。注意:flutter的生成的debug的framework可以运行在模拟器和真机,release的只能运行在真机。   --- 这一步我这边尝试也没看到需要改动的地方。可能新版本flutter有所支持吧。
 
5.bitcode设为了NO,否则这里遇到了编译release版出错
最后注意:flutter工程以后开发时如果增加了新的packge,要对新增加生成的framework做3-4步骤(若为静态库则不用加入)
 
 
 
 
 
 

 

 

posted on   yuzx  阅读(410)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示