Flutter通过Android Studio构建iOS模拟器失败但flutter build ios正常
故障原因
- 直接触发报错的是Pods依赖库FMDB的默认iOS部署目标设置为8.0,而你当前使用的Xcode 13支持的iOS模拟器最低部署版本为9.0,产生了版本不兼容警告。
- 不同构建场景表现不同的原因:
flutter build ios默认构建真机release包,真机场景下对旧版本的兼容校验规则和模拟器不同,不会把该警告判定为构建阻断错误- Xcode运行时会自动将低于支持范围的部署目标升级到最低兼容版本,不会主动阻断构建
- 你使用的是dev频道的Flutter版本,该版本的
flutter run命令默认启用了更严格的构建校验规则,会把版本不兼容的警告直接判定为错误,终止构建流程,这就是Android Studio跑模拟器失败的核心原因。
解决方法
方法一:全局修改Pods的部署版本配置(永久生效,推荐)
打开项目ios目录下的Podfile,找到以下注释掉的代码:# platform :ios, '9.0'去掉注释,将版本号调整为9.0或更高(和你项目Runner的部署版本保持一致即可),然后在Podfile末尾添加以下代码,强制所有Pods子依赖的最低部署版本和全局设置一致:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0' end end end保存后执行以下命令更新Pods配置:
cd ios rm -rf Pods Podfile.lock pod install配置完成后再用Android Studio启动模拟器运行即可解决报错。
方法二:升级FMDB依赖版本
升级项目中依赖的FMDB到最新正式版,新版FMDB已经将最低iOS部署版本调整到9.0以上,不会再触发版本不兼容警告。方法三:临时修改FMDB的构建设置(不推荐长期使用)
打开ios/Runner.xcworkspace项目,在左侧导航栏选中Pods项目,找到FMDB的target,将其IPHONEOS_DEPLOYMENT_TARGET配置改为9.0或更高即可。该方案的缺点是每次执行pod install后配置会被重置,仅适合临时验证问题使用。
内容的提问来源于stack exchange,提问作者iDecode
相关产品推荐
相关产品推荐

