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

M1芯片设备升级Xcode13后非Release配置下Pod构建及预编译头失败

问题诱因
  1. CocoaPods 1.11.x版本在M1架构设备上对自定义构建配置的适配存在缺陷,你的QA Scheme关联的Debug配置未被Pods项目正确识别,导致构建时跳过了Debug版本Pods依赖的编译,仅生成了Release版本的构建产物。
  2. Podfile中post_install脚本全局强制所有构建配置的ONLY_ACTIVE_ARCH为YES,Release配置下该设置会导致依赖库仅编译当前设备架构,同时Debug构建时若依赖库未适配M1 arm64模拟器架构,会直接构建失败不生成对应产物。
  3. 旧版本第三方依赖未适配M1 arm64模拟器架构,Xcode默认在Debug模式下优先编译当前设备的arm64架构,依赖库构建失败后不会生成Debug对应的构建目录。
解决方案

按以下步骤操作即可修复该问题:

  • 第一步:清理本地缓存和旧的Pods配置
    打开终端在项目根目录执行以下命令:
    rm -rf ~/Library/Developer/Xcode/DerivedData/*
    pod deintegrate
    rm -rf Pods Podfile.lock
    
  • 第二步:修改Podfile的post_install脚本
    将原有post_install代码替换为以下内容,区分不同构建配置的参数,同时添加M1模拟器适配:
    post_install do |pi|
      pi.pods_project.targets.each do |t|
          t.build_configurations.each do |config|
              config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
              # Debug仅编译当前架构提升编译速度,Release编译全架构保证兼容性
              config.build_settings["ONLY_ACTIVE_ARCH"] = config.name == 'Debug' ? "YES" : "NO"
              # 排除模拟器的arm64架构要求,适配M1设备
              config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
          end
      end
      # 主动添加Debug配置到Pods项目,避免配置丢失
      unless pi.pods_project.build_configurations.map(&:name).include?('Debug')
        pi.pods_project.add_build_configuration('Debug', :debug)
      end
    end
    
  • 第三步:重新安装依赖
    M1设备不需要用Rosetta打开终端,直接在原生终端执行:
    pod install
    
  • 第四步:调整主项目构建设置
    打开项目的.xcworkspace文件,选中主项目target,在构建设置中修改以下参数:
    1. 找到Excluded Architectures选项,在Any iOS Simulator SDK下添加值arm64,确保Debug、Release配置都应用该设置
    2. 找到Build Active Architecture Only选项,Debug配置设为YES,Release配置设为NO
    3. 确认QA Scheme的构建配置确实关联为Debug,无自定义配置错误
  • 第五步:重启Xcode后选择QA Scheme重新构建即可

内容的提问来源于stack exchange,提问作者Tyler DiBartolo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:36:04