描述 :
在打包機通過 xcode打包不報錯
在打包機直接運行打包shell不報錯
但是通過jenkin打包就會出現下面的錯誤 :
KitExtension.appex /Users/5i5j/Library/Developer/Xcode/DerivedData/cbs_new5iwork-ebjitbdetyopmbadzpizhbztfpyw/Build/Intermediates.noindex/ArchiveIntermediates/cbs_new5iwork/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/CallKitExtension.appex: errSecInternalComponent Command CodeSign failed with a nonzero exit code
出現這個問題的主要原因是是Jenkins,以ssh方式到slave機上,默認是沒有賬戶的,但是訪問鑰匙串要求必須有用戶身份
(回憶了一下自己通過Xcode打包的過程中,的確是要求輸入過登錄密碼,之后才打包成功的。沒想到通過xcode打包成功之后,再使用shell腳本直接打包,也還需要輸入登錄密碼才能打包成功)
解決辦法
添加一步輸入密碼解鎖鑰匙串,可以給Jenkins一個用戶身份。 build步驟前添加一步解鎖鑰匙串。
security unlock-keychain -p "login pwd" ~/Library/Keychains/login.keychain
參考文檔: