简介:为了方便测试人员和把程序员从频繁的打包工作中解放出来,使用Jenkins自动化远程Mac节点打包真香
之前研究Jenkins自动化远程Mac节点打包成功后,就一直正常打包,当项目打包上架后,再使用Jenkins自动打包,突然就报错了
控制台输出的错误如下:
** ARCHIVE FAILED **
The following build commands failed:
PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/XXXXX/Library/Developer/Xcode/DerivedData/XXXXX-adempnbmujttsbbhgpmmmtsvgjlz/Build/Intermediates.noindex/ArchiveIntermediates/XXXXX/IntermediateBuildFilesPath/XXXXX.build/Debug-iphoneos/XXXXX.build/Script-AFA8A4BB8D5635E83E7A238B.sh
分析:使用Jenkins本地自动化打包成功,但使用远程Mac节点打包却报错,发现打开钥匙串没有报错,说明打开钥匙密码没错,但有报错前有输出证书有关的信息
sent 3911085 bytes received 70 bytes 7822310.00 bytes/sec
total size is 3910365 speedup is 1.00
Code Signing /Users/XXXX/Library/Developer/Xcode/DerivedData/XXXXX-adempnbmujttsbbhgpmmmtsvgjlz/Build/Intermediates.noindex/ArchiveIntermediates/XXXXx/InstallationBuildProductsLocation/Applications//XXXX.app/Frameworks/AFNetworking.framework with Identity Apple Development: yixxx xxx (22XXXXXXX)
/usr/bin/codesign --force --sign 38XXXXXXXXXXXB56895DB1A03 --preserve-metadata=identifier,entitlements '/Users/XXX/Library/Developer/Xcode/DerivedData/XXXXX-adempnbmujttsbbhgpmmmtsvgjlz/Build/Intermediates.noindex/ArchiveIntermediates/XXXXX/InstallationBuildProductsLocation/Applications//XXXXX.app/Frameworks/AFNetworking.framework'
/Users/XXXXX/Library/Developer/Xcode/DerivedData/XXXXXX-adempnbmujttsbbhgpmmmtsvgjlz/Build/Intermediates.noindex/ArchiveIntermediates/Dolphin/InstallationBuildProductsLocation/Applications//XXXXXX.app/Frameworks/AFNetworking.framework: errSecInternalComponent
Command /bin/sh failed with exit code 1
参考了一下大神的文章,跟文章中描述情况非常相似,因为测试的时候用的是其他开发者账号的证书,但上架的时候用的另一个开发者的证书,但是login.keychain文件没有重新上传,觉得可能是证书权限的问题。
解决方法:
把之前放在登录权限里面的证书拖到系统权限里面,前往钥匙串存放目录~/Library/Keychains,重新复制出login.keychain-db, 去掉-db重新上传到Jenkins,然后就打包成功了😃
~/Library/Keychains