You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode添加armv7至排除架构后无法运行arm64 iOS模拟器如何解决

问题根因

该冲突由三方面共同导致:

  1. Xcode 12及以上版本开启了自动架构适配逻辑,当在Project层级为真机SDK添加armv7排除规则时,会默认给模拟器SDK追加arm64排除规则,避免架构不匹配
  2. CocoaPods不会自动同步主工程修改的架构配置到Pods工程,默认编译出的Pods_Runner.framework不会自带模拟器arm64架构切片,此时删除自动生成的arm64排除规则就会触发架构缺失报错
  3. google_ml_kit系列原生依赖从2022年起就完全停止了对armv7、i386老旧架构的支持,手动在Xcode UI层面修改架构规则很容易触发配置不同步问题
解决步骤
  • 清空所有手动添加的架构排除规则:打开Xcode,分别找到Project -> Build Settings -> Excluded Architectures、Target -> Build Settings -> Excluded Architectures,选中所有自定义添加的规则按delete键恢复系统默认值,不要手动添加任何armv7、arm64相关排除项。
  • 统一通过Podfile配置架构规则:打开项目iOS目录下的Podfile文件,在文件末尾替换/添加如下post_install脚本,所有架构配置统一在这里管理,不要在Xcode UI中修改:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      # 真机环境自动排除已废弃的armv7架构
      config.build_settings['EXCLUDED_ARCHS[sdk=iphoneos*]'] = 'armv7'
      # 模拟器环境不排除arm64,强制编译对应架构切片
      config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = ''
      # 关闭仅编译当前架构,确保所有依赖编译全量需要的架构切片
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
    end
  end
end
  • 清理旧缓存重新安装依赖:关闭Xcode,在项目根目录依次执行如下命令:
flutter clean
cd ios
rm -rf Pods Podfile.lock build ~/Library/Developer/Xcode/DerivedData/Runner-*
pod install --repo-update
  • 重新打开ios/Runner.xcworkspace,选择arm64架构的iOS模拟器直接编译即可,不会再出现架构缺失报错,也不会出现模拟器无法启动的问题。
避坑说明
  • 后续不要在Xcode的Build Settings UI中手动修改任何Excluded Architectures配置,所有架构规则统一在Podfile的post_install脚本中维护,避免CocoaPods同步配置时覆盖自定义规则,或触发Xcode的自动错误适配。
  • 若执行完上述步骤仍报错,先确认使用的google_ml_kit_object_detection版本不低于0.7.0,低于该版本的官方依赖本身未提供模拟器arm64编译切片,升级到最新稳定版即可。

内容的提问来源于stack exchange,提问作者Flutter Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 10:57:54