个人网站 搭建JENKINS+IOS持续集成遇到的坑与解决方案
本文并不是jenkins安装使用教程,百度,Google已有相当多此类文章,有兴趣的朋友可自行搜索,本文只是记录笔者在安装与使用过程中踩过的坑。
JDK版本兼容
搭建Java环境与安装Jenkins的时候要注意当前Jenkins版本支持的JDK版本,笔者一开始下载的是JDK12,结果搭建Jenkins的时候一直提示无法连接localhost,排查很久才发现是JDK12不兼容当前Jenkins版本。
于是从头再来
插件无法安装
在成功连接localhost:8080
并且成功输入密码之后会提示安装插件,笔者在这一步会一直提示无法找到某个文件
在尝试网上各种解决教程之后依然无法解决,这里笔者选择了不安装任何插件直接进入下一步,居然成功了!
当然后续需要在系统设置的插件管理中把常用的插件手动安装一下。
文件夹位置
在诸多教程中,会要求在~/Library/Keychains
复制文件到到jenkins所在文件夹中,不同的教程可能所要求复制的位置不同,着实让人困惑,那复制在不同的位置这有影响吗?
没有。其实Jenkins是用在我们的电脑中创建了一个新用户,复制KeyChains只是让Jenkins这个用户享有与原本用户的一样钥匙串而已。
记得在系统设置中的Keychains and Provisioning Profiles Management
中上传keychain文件即可。 不然项目编译时会提示找不到证书。
XCODE INTEGRATION
如果Xcode已经升级到9以上,那么关于在Jenkins中使用Xcode插件构建的步骤教程都可忽略。
一致使用shell脚本自动打包。
XCODEBUILD
关于Xcodebuild的教程网上也有很多。笔者在使用shell脚本自动打包的时候,发现在外部使用脚本可以打包成功,在Jenkins中会报错,其中报错为
app: errSecInternalComponent
Command /usr/bin/codesign failed with exit code 1
** BUILD FAILED **
搜索了一些教程后找到解决方案:
在build之前加上以下一段脚本
security unlock-keychain -p "login pwd" ~/Library/Keychains/login.keychain
权限问题
如果提示报错权限问题,可以打开文件夹所在位置,修改其文件夹管理者读写权限。
总结
如同网上所说,搭建Jenkins与技术没有直接联系,它更需要你耐心地了解每个步骤,冷静地解决问题与反复的尝试
终于在搭建了55次之后成功了!