升级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')
问题解决方法
- 强制指定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
- 修复CocoaPods脚本权限
报错指向Pods嵌入脚本,可能是脚本执行权限丢失。执行以下命令修复:
chmod +x "${PODS_ROOT}/Target Support Files/Pods-Project/Pods-Project-frameworks.sh"
同时建议更新CocoaPods到适配Xcode 15的版本(1.14.3及以上):
pod update
- 验证签名配置有效性
Xcode 15对签名流程有调整,确保:
PROVISIONING_PROFILE_SPECIFIER对应的描述文件已正确下载到服务器CODE_SIGN_IDENTITY的证书在钥匙串中存在且包含私钥
- 清理DerivedData目录
删除旧的编译缓存并确保当前用户有读写权限:
rm -rf ~/Library/Developer/Xcode/DerivedData
内容的提问来源于stack exchange,提问作者NullPointerException
相关产品推荐
相关产品推荐

