Codemagic原生iOS项目构建.ipa失败 退出状态码66问题求助
Codemagic构建iOS原生项目IPA失败问题描述
我在Codemagic上构建原生iOS项目的.ipa文件时出现失败,报错信息如下:
Archive
执行xcodebuild -project . -scheme Optivio -archivePath build/ios/xcarchive/_ijalmu93.xcarchive archive COMPILER_INDEX_STORE_ENABLE=NO
归档失败
构建失败 :| 第7步Build .ipa脚本退出,状态码为66
我yaml文件中构建ipa的对应代码如下:
xcode-project build-ipa --project "$XCODE_PROJECT" --scheme "$XCODE_SCHEME"
我的项目没有workspace,仅存在project文件,在本地Xcode中执行归档操作可成功完成。
Codemagic运行截图:
完整yaml文件内容如下:
workflows: ios-testApp: name: ios_testApp environment: vars: XCODE_PROJECT: "TestApp.xcodeproj" # <-- 请在此处填写你的project文件名 XCODE_SCHEME: "TestApp" # <-- 请在此处填写你的scheme名称 # 配置手动签名所需的环境变量 CM_CERTIFICATE: Encrypted(…….) # <-- 请在此处填写加密后的发布证书内容 CM_CERTIFICATE_PASSWORD: Encrypted(…….) # <-- 请在此处填写加密后的发布证书密码 CM_PROVISIONING_PROFILE: Encrypted(…….) # <-- 请在此处填写加密后的描述文件内容 xcode: 12.4 cocoapods: default triggering: events: - push - tag - pull_request branch_patterns: - pattern: 'master' include: true source: true scripts: - name: 调用Codemagic CLI的keychain命令初始化代码签名用的钥匙串 script: | keychain initialize - name: 配置描述文件 script: | PROFILES_HOME="/Users/vadivel/Library/MobileDevice/Provisioning Profiles" mkdir -p "$PROFILES_HOME" PROFILE_PATH="$(mktemp "$PROFILES_HOME"/$(uuidgen).mobileprovision)" echo ${CM_PROVISIONING_PROFILE} | base64 --decode > $PROFILE_PATH echo "Saved provisioning profile $PROFILE_PATH" - name: 将签名证书添加到钥匙串 script: | echo $CM_CERTIFICATE | base64 --decode > /tmp/certificate.p12 keychain add-certificates --certificate /tmp/certificate.p12 --certificate-password $CM_CERTIFICATE_PASSWORD - name: 为Xcode项目配置代码签名设置 script: | xcode-project use-profiles - name: 构建.ipa安装包 script: | xcode-project build-ipa --project "$XCODE_PROJECT" --scheme "$XCODE_SCHEME" artifacts: - build/ios/ipa/*.ipa - /Users/vadivel/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM publishing: email: recipients: - xxxxx@gmail.com notify: success: true failure: true
问题原因及修复方案
- 第一处错误:yaml配置中
XCODE_PROJECT变量多写了一个冒号,原配置里是XCODE_PROJECT:: "TestApp.xcodeproj",多余的冒号导致变量解析失败,构建时无法正确获取到项目文件名,执行xcodebuild命令时project参数异常,最终返回状态码66,将冒号改为单个即可。 - 第二处错误:报错信息中执行的scheme是Optivio,但yaml中配置的
XCODE_SCHEME值为TestApp,两者不匹配,需要确认项目实际的scheme名称,确保配置值和实际值一致。 - 额外校验项:
- 确认描述文件和证书匹配,且对应项目的bundle id正确
- 确认Codemagic使用的Xcode 12.4版本和本地构建成功的Xcode版本一致,避免版本差异带来的构建问题
- 可以在构建脚本开头添加
set -x打印执行日志,方便排查变量解析是否正确
内容的提问来源于stack exchange,提问作者Velu
相关产品推荐
相关产品推荐

