升级
最近官方发布了flutter 稳定版本1.17.0 ,记录下升级1.17 ios上碰到的的问题
App产物
在 1.12.13 的时候,为了支持模拟器运行,会进行 debug 产物 跟 release 产物的merge (lipo create …)
debug 产物 x86 、release 产物 arm64 arm7
升级到1.17.0 之后 ,merge报错
lipo 查看下
发现针对模拟器的debug产物 含有arm64
Debug Flutter tool源码, build 里面进行了两次createStubAppFramework(iphone && simulator)
然后做了merge,实际上environment
参数里面 iosArchs只有 arch x86,所以问题出在这里
DebugUniveralFramework
1 |
|
解决办法 可以通过archs 判断下具体执行
1 |
|
突然想到 既然1.17 对debug 产物做了arm64的支持,那我们收集产物是不是可以不用自己做merge,发现是不可以的
因为除了App.framework,还有plugin native代码生成的pod静态库 libxxx.a。
静态库 是哪里生成的呢?
这里 build_ios.dart -> buildXcodeProject
1 | ... |
这里只针对x86做了xcode build,所以还是要自己merge的…