Flutter项目Xcode编译出现AnyObject、openURL相关错误无法启动
Flutter iOS Xcode编译失败解决方案
1. 全量清理本地缓存与依赖
执行以下命令清理所有过期缓存文件:
# 清理Flutter构建缓存 flutter clean # 移除iOS侧旧依赖文件 rm -rf ios/Pods rm ios/Podfile.lock # 清理Xcode全局缓存 rm -rf ~/Library/Developer/Xcode/DerivedData/*
清理完成后重新拉取依赖:
flutter pub get cd ios # 升级pod仓库后重新安装依赖 pod install --repo-update
2. 修正Podfile配置
替换你项目ios目录下的Podfile中post_install段为以下配置,补全架构排除和Bitcode禁用规则:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| # 统一所有依赖的部署目标为10.0 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0' # 排除模拟器不支持的ARM架构,适配Xcode 12及以上版本 config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64 arm64e armv7 armv7s" # 禁用Bitcode,多数第三方依赖不支持Bitcode编译 config.build_settings['ENABLE_BITCODE'] = 'NO' end end end
配置修改完成后,需要重新执行一次pod install生效。
3. 确认项目基础配置
手动打开项目ios目录下的Runner.xcworkspace文件,检查Xcode中Runner项目的两项配置:
- 「Info」选项卡下的iOS Deployment Target设置为10.0,和Podfile配置保持一致
- 「Build Settings」选项卡下搜索IPHONEOS_DEPLOYMENT_TARGET,确认所有配置项的值都是10.0
4. 手动构建校验
完成上述操作后,先在Xcode中执行Product > Clean Build Folder清理Xcode侧构建缓存,之后选择目标模拟器点击Run按钮手动构建。如果Xcode手动构建成功,再回到VS Code启动项目即可正常运行。
异常兜底方案
如果以上操作完成后仍报PhaseScriptExecution错误,执行以下命令重新生成Flutter iOS框架文件:
rm -rf ios/Flutter/*.framework flutter build ios --debug --simulator --no-codesign
内容的提问来源于stack exchange,提问作者Rene Alas
相关产品推荐
相关产品推荐

