描述 :
在打包机通过 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
参考文档: