记录一下最近在做flutter项目时遇到的问题:
flutter版本:3.0.5
Xcode版本:13.4.1
因领导要求要兼容iOS11以下机型,我们的项目适配到iOS9,所以一直没升级Xcode,也没升级flutter,(flutter自3.0.5以后的版本为了适配新版Xcode舍弃了iOS11以下的兼容,所以无法再打包ios9和ios10)我们项目使用同一套flutter代码,要打包出3个App,用了不同的开发者账号,不同的bundleId,使用flutter命令行打包出ipa后放在蒲公英,用iOS16手机分别下载后,在依次打开会出现以下情况:
A 网络授权同意后 -->无网络
B 网络授权同意后 -->无网络
C 网络授权同意后 -->有网络(再回去打开A和B也都有网络了)
起初怀疑flutter代码有问题,就新建了空项目去打包依然可以复现上面的问题。
然后通过排除的方法试了一下:
环境:flutter版本不升级 Xcode不升级 有问题
环境 :flutter版本升级 Xcode不升级 有问题
环境:flutter版本升级 Xcode升级 没问题
环境:flutter版本不升级 Xcode升级 没问题
就确定了是Xcode版本的问题,果断升级Xcode。
升级后Xcode里面的Minimum Deployments 设置成9.0依然可以打出iOS11以下的包,只不过没有了armv7架构。同时包体积也小了一半。
各个架构指令集对应的机型
# armv6: iPhone, iPhone 3G, iPod 1G/2G
# armv7: iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3, iPad Mini
# armv7s: iPhone 5, iPhone 5c, iPad 4
# arm64: iPhone X,iPhone 8(Plus),iPhone 7(Plus),iPhone 6(Plus),iPhone 6s(Plus), iPhone 5s, iPad Air(2), Retina iPad Mini(2,3)
# arm64e: XS/XS Max/XR/ iPhone 11, iPhone 11 pro,iPhone 11 Pro Max,iPhone SE (2nd generation),iPhone 12 mini,iPhone 12,iPhone 12 Pro,iPhone 12 Pro Max,Phone 13 mini,Phone 13,iPhone 13 Pro,iPhone 13 Pro Max
# x86_64: 模拟器64位处理器
# i386: 模拟器32位处理器
关于新版Xcode的适配问题请参考:https://www.jianshu.com/p/2cda11b364ea?v=1676519122037
网友评论