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

M1 Mac上Xcode为何构建iOS Simulator-x86_64而非arm架构模拟器

问题原因

该报错属于典型的架构不匹配问题,触发原因如下:

  • 当前Xcode在为模拟器构建x86_64架构的二进制包,但你引入的GoogleSignIn等依赖库编译生成的是arm64架构的模拟器文件,二者无法完成链接
  • M1系列Mac上的模拟器本身确实支持arm架构,出现强制构建x86_64的情况通常有两类诱因:
    • 项目或依赖的构建设置中,手动给模拟器配置了排除arm64架构的规则,这类规则大多是旧项目为适配Intel芯片Mac遗留的,迁移到M1设备后没有删除
    • 依赖管理工具(如CocoaPods)版本过低,或者配置文件中存在强制指定模拟器架构为x86_64的逻辑,导致主项目和依赖的构建架构不一致

解决方法

步骤1:清理旧构建缓存

首先删除Xcode遗留的衍生数据,避免旧缓存干扰构建:
rm -rf ~/Library/Developer/Xcode/DerivedData

步骤2:调整项目构建设置

打开Xcode项目,选中对应的target,进入「Build Settings」页面:

  • 找到Excluded Architectures配置项,删除所有为「Any iOS Simulator SDK」添加的arm64排除规则
  • 找到Build Active Architecture Only配置项,Debug模式设置为YES,Release模式设置为NO,Debug模式下Xcode会自动适配当前设备架构,M1设备上默认就会构建arm64版本的模拟器包

步骤3:修正CocoaPods配置(使用CocoaPods的项目需要执行)

打开项目的Podfile,在末尾添加如下配置:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = ''
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
    end
  end
end

保存后在终端项目目录下执行pod install,重新生成Pods项目配置。

步骤4:确认运行环境

检查选中的模拟器系统版本为iOS 14及以上,同时确认Xcode没有勾选「使用Rosetta打开」选项,重启Xcode后重新构建即可正常运行。

可选临时方案:如果需要快速运行调试,也可以右键Xcode图标,勾选「使用Rosetta打开」,重启后Xcode会运行在Intel转译环境下,默认构建x86_64架构的模拟器包,无需修改项目配置即可正常运行,缺点是编译速度会比原生arm64模式慢。

内容的提问来源于stack exchange,提问作者Konstantin Schubert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:36:04