如何解决MacBook Pro M1上Xcode 14的‘Multiple commands produce’构建错误
解决MacBook Pro M1 + Xcode 14构建时的「Multiple commands produce」错误
针对你的环境(macOS Monterey 12.5.1、Xcode 14、CocoaPods 1.11.3、React Native 0.59),以下是经过验证的解决方案:
1. 调整Xcode构建路径配置
旧版React Native的构建路径配置和Xcode 14的默认规则冲突,导致重复生成文件:
- 打开Xcode项目,选中目标Target,进入Build Settings
- 搜索
Per-configuration Build Products Path,将值修改为$(BUILD_DIR)/$(CONFIGURATION)-$(PLATFORM_NAME) - 搜索
Build Products Path,设置为$(BUILD_DIR)/Products
2. 彻底清理并重新安装CocoaPods
CocoaPods 1.11.3与Xcode 14、M1架构存在适配问题,执行以下步骤:
- 终端进入项目ios目录,执行:
pod deintegrate - 清理所有Pod缓存:
pod cache clean --all - 删除锁文件:
rm Podfile.lock - M1设备需用x86架构兼容模式安装:
arch -x86_64 pod install
3. 移除重复的编译资源
检查Xcode中是否存在重复添加的文件:
- 进入Target的Build Phases
- 查看Copy Bundle Resources和Compile Sources列表,删除所有重复出现的文件(如同名plist、图片、源文件等)
4. 适配M1架构的编译排除设置
React Native 0.59不支持arm64原生编译,Xcode 14默认会尝试构建该架构导致冲突:
方案A:直接修改项目Build Settings
- 选中项目根目录,进入Build Settings
- 搜索
Excluded Architectures,在Debug和Release配置下均添加arm64
方案B:通过Podfile统一配置(推荐)
在项目ios目录的Podfile末尾添加以下代码,执行arch -x86_64 pod install生效:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end end
5. 清理Xcode全局构建缓存
- 终端执行:
rm -rf ~/Library/Developer/Xcode/DerivedData - 在Xcode中按下
Cmd+Shift+K清理项目缓存,再按Cmd+Option+Shift+K清理构建文件夹
内容的提问来源于stack exchange,提问作者J90
相关产品推荐
相关产品推荐

