You need to enable JavaScript to run this app. M1芯片款Mac mini上Xcode12.4开发iOS应用遇arm64架构报错求助
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片款Mac mini上Xcode12.4开发iOS应用遇arm64架构报错求助

M1芯片Mac环境下Xcode12.4集成特定支付、地图框架的构建报错修复指南

适用场景

  • 设备:M1架构新款Mac mini
  • 工具版本:Xcode12.4
  • 触发场景:通过CocoaPods集成Razorpay支付组件、GooglePlaces地图组件后,iOS模拟器构建抛出以下两类报错:
    • Razorpay模块目标不兼容报错:Module 'Razorpay' was created for incompatible target arm64-apple-ios10.0
    • GooglePlaces架构链接报错:building for iOS Simulator, but linking in object file built for iOS, file '/Pods/GooglePlaces/Frameworks/GooglePlaces' for architecture arm64
  • 已知前提:相同项目配置在Intel芯片Mac上可正常构建运行,参考网络上流传的通用Xcode12架构适配方案操作后仍无法解决;这类通用方案失效的核心原因是仅修改了主项目的架构配置,没有同步覆盖CocoaPods生成的子目标配置,也没有对齐Razorpay框架的部署目标版本,导致pod工程的配置仍然和M1模拟器架构规则冲突。

分步修复操作

1. 清理旧缓存,从根源避免旧配置干扰

  • 依次删除项目目录下的Pods文件夹、Podfile.lock文件
  • 打开终端重装适配当前Xcode12.4版本的CocoaPods,避免旧版本pod的架构配置逻辑错位

2. 在Podfile中添加统一的编译配置脚本

  • 打开项目根目录下的Podfile文件,在文件末尾添加如下post_install脚本,统一为不兼容的二进制框架配置构建规则:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    # 为Razorpay框架对齐部署目标,解决模块编译目标不匹配问题
    if target.name == 'Razorpay'
      target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
        # 模拟器构建环节排除不兼容的真机arm64架构
        config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
      end
    end
    # 为所有Google系二进制框架同步配置架构规则
    if target.name.include?('Google')
      target.build_configurations.each do |config|
        config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
        config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      end
    end
  end
end
  • 保存Podfile后,在终端项目路径下执行pod install重新拉取依赖

3. 主项目配置同步校准

  • 打开主项目的Target设置,进入Build Settings面板
  • 搜索Excluded Architectures选项,针对Any iOS Simulator SDK分类,添加排除架构arm64
  • 搜索Build Active Architecture Only选项,将Debug、Release配置下的模拟器构建规则统一设置为NO

4. M1芯片专属Xcode运行配置调整

  • 找到应用程序目录下的Xcode图标,右键选择「显示简介」
  • 勾选「使用Rosetta打开」选项,重启Xcode
  • 进入Xcode的Product菜单,按住Option键点击Clean Build Folder,清空全部构建缓存后重新构建模拟器目标

效果验证

完成上述操作后,模拟器构建环节会自动跳过不兼容的真机arm64 slice,使用x86_64架构的框架slice参与链接,同时对齐Razorpay框架的编译目标版本,两类报错会直接消除。


内容的提问来源于stack exchange,提问作者Mitesh Dobareeya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 00:15:06