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

升级Xcode 15.2后xcodebuild归档命令执行失败求助

Xcode 15.2命令行打包iOS应用失败(升级自Xcode 14)

我们有一台搭载Xcode的Mac服务器,原本通过命令行使用发布描述文件和签名身份生成iOS应用,升级到Xcode 15.2后流程完全失效。执行生成Xarchive的命令时失败,无产物输出并报错。

执行的打包命令

xcodebuild -workspace Project.xcworkspace -scheme "Release Ads" \
-xcconfig Project/Custom.xcconfig PROVISIONING_PROFILE_SPECIFIER=realidentifier \
CODE_SIGN_IDENTITY=realsignidentity \
CODE_SIGN_ENTITLEMENTS=/Users/user/project/Project/Project.entitlements \
archive

Custom.xcconfig文件内容

OTHER_SWIFT_FLAGS = -Onone -DCOCOAPODS -DRELEASE -DADS -DFIREBASE -DPUSH

Project.entitlements文件内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>production</string>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>beta-reports-active</key>
    <true/>
</dict>
</plist>

控制台错误日志

2024-05-08 18:38:55.527 --- xcodebuild: WARNING: Using the first of multiple matching destinations:
2024-05-08 18:38:55.527 { platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00008103-001904CE1EC3001E }
2024-05-08 18:38:55.527 { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:588FF55F-AFE3-4201-883D-AA074825765E, OS:17.2, name:iPad (10th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:588FF55F-AFE3-4201-883D-AA074825765E, OS:17.2, name:iPad (10th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:E7D3BE01-626C-4448-AD07-9B72E8D59778, OS:17.2, name:iPad Air (5th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:E7D3BE01-626C-4448-AD07-9B72E8D59778, OS:17.2, name:iPad Air (5th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:CE0E7741-9872-4903-95D3-DA86730D8D91, OS:17.2, name:iPad Pro (11-inch) (4th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:CE0E7741-9872-4903-95D3-DA86730D8D91, OS:17.2, name:iPad Pro (11-inch) (4th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:23DEF9D6-7B62-4829-A2F0-9C4356F7CB22, OS:17.2, name:iPad Pro (12.9-inch) (6th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:23DEF9D6-7B62-4829-A2F0-9C4356F7CB22, OS:17.2, name:iPad Pro (12.9-inch) (6th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:00F68979-CC31-4FDA-BD44-6AE3E41EEC3A, OS:17.2, name:iPad mini (6th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:00F68979-CC31-4FDA-BD44-6AE3E41EEC3A, OS:17.2, name:iPad mini (6th generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:5396905C-A343-4D94-95DD-23FE0ADDDCEB, OS:17.2, name:iPhone 15 }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:5396905C-A343-4D94-95DD-23FE0ADDDCEB, OS:17.2, name:iPhone 15 }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:F713CFB0-8617-424D-BE03-51B506931BFD, OS:17.2, name:iPhone 15 Plus }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:F713CFB0-8617-424D-BE03-51B506931BFD, OS:17.2, name:iPhone 15 Plus }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:594E330B-252D-4728-955C-B508E70AD20A, OS:17.2, name:iPhone 15 Pro }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:594E330B-252D-4728-955C-B508E70AD20A, OS:17.2, name:iPhone 15 Pro }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:B7551687-D9C6-46E9-BA26-D0CC70AC134D, OS:17.2, name:iPhone 15 Pro Max }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:B7551687-D9C6-46E9-BA26-D0CC70AC134D, OS:17.2, name:iPhone 15 Pro Max }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:E5D6C1EA-81B1-49D5-BF55-673258AE1227, OS:17.2, name:iPhone SE (3rd generation) }
2024-05-08 18:38:55.527 { platform:iOS Simulator, id:E5D6C1EA-81B1-49D5-BF55-673258AE1227, OS:17.2, name:iPhone SE (3rd generation) }
2024-05-08 18:39:24.105 ** ARCHIVE FAILED **
2024-05-08 18:39:24.105 
2024-05-08 18:39:24.105 
2024-05-08 18:39:24.105 The following build commands failed:
2024-05-08 18:39:24.105     PhaseScriptExecution [CP] Embed Pods Frameworks /Users/user/Library/Developer/Xcode/DerivedData/Project-bdyzwdcujggpnmedzctlookvtuwv/Build/Intermediates.noindex/ArchiveIntermediates/Release/IntermediateBuildFilesPath/Project.build/Release-iphoneos/Project.build/Script-FEF05C244C47CB5438EC384B.sh (in target 'Project' from project 'Project')

问题解决方法

  1. 强制指定iOS打包目标
    日志显示xcodebuild自动选择了macOS平台,这是核心问题之一。在命令中添加-destination 'generic/platform=iOS'参数,强制指定iOS通用设备作为打包目标:
xcodebuild -workspace Project.xcworkspace -scheme "Release Ads" \
-xcconfig Project/Custom.xcconfig PROVISIONING_PROFILE_SPECIFIER=realidentifier \
CODE_SIGN_IDENTITY=realsignidentity \
CODE_SIGN_ENTITLEMENTS=/Users/user/project/Project/Project.entitlements \
-destination 'generic/platform=iOS' \
archive
  1. 修复CocoaPods脚本权限
    报错指向Pods嵌入脚本,可能是脚本执行权限丢失。执行以下命令修复:
chmod +x "${PODS_ROOT}/Target Support Files/Pods-Project/Pods-Project-frameworks.sh"

同时建议更新CocoaPods到适配Xcode 15的版本(1.14.3及以上):

pod update
  1. 验证签名配置有效性
    Xcode 15对签名流程有调整,确保:
  • PROVISIONING_PROFILE_SPECIFIER对应的描述文件已正确下载到服务器
  • CODE_SIGN_IDENTITY的证书在钥匙串中存在且包含私钥
  1. 清理DerivedData目录
    删除旧的编译缓存并确保当前用户有读写权限:
rm -rf ~/Library/Developer/Xcode/DerivedData

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:20:54