Jenkins打包IOS项目(疑难问题总结)

最近正在基于Jenkins工具,实现IOS项目的CI构建,虽然已经折腾出来,但是记录一下踩过的坑

Jenkins打包IOS两种方案:

方案一:在Mac电脑上安装Jenkins,然后将本地作为一个专门用来打包IOS工程的打包机
方案二:装在Linux端的Jenkins,通过新建一个Mac的Slave,来远程操作Mac电脑实现打包

Jenkins新建Mac节点细节和工程配置、插件等就不细说了,网上都可自行查阅

这里记录一个通过jenkins打包ipa包报错:

 Command CodeSign failed with a nonzero exit code(errSecInternalComponent)

描述 :

在打包机通过 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步骤前添加一步解锁钥匙串。
在Jenkins execute shell中加上下边指令;

security unlock-keychain -p "login pwd" ~/Library/Keychains/login.keychain
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值