说明
Jenkins很强大,本文主要记录Jenkins用于iOS自动打包。
步骤
Jenkins官网下载最新安装包
如果下载太慢,可以使用我的备份Jenkins1.651.2
双击下载的pkg文件,安装Jenkins。
安装完成后,在浏览器输入http://localhost:8080
可以看到Jenkins的页面
提升jenkins的用户权限为管理员
1 | sudo dseditgroup -o edit -a jenkins -t user admin |
补全Jenkins用户的信息
打开系统偏好设置,选择用户与群组,输入密码解锁。选择没有名字的那个用户,重新设置下密码,然后右键->高级选项,补全名字
从当前用户切换到jenkins。使用命令su -l 用户名
(也可以重启电脑,选择jenkins用户登录,然后安装相关的证书。下面讲述的是命令行操作)
1 | su -l jenkins |
为了方便从git等仓库拉取代码,生成SSH。(该过程最好全部默认,即一直按回车即可)
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" //邮箱为对应git仓库的用户名 |
使用cat命令查看SSH并复制出来,然后在相应的git仓库配置SSH即可。
由于我是命令行切换的用户,直接pbcopy是无用的,只能打印出来手动复制了。如果是登录时选择的Jenkins,可以使用
pbcopy > ~/.ssh/id_rsa.pub
复制SSH
1 | cat ~/.ssh/id_rsa.pub |
创建证书文件夹MobileDevice。将证书*.mobileprovision复制到Provisioning Profiles文件夹下
1 | cd /Users/Shared/Jenkins/Library |
配置Jenkins
安全配置
插件配置(默认没有git插件,需要自己安装)
XCode的工程配置里,Code Signing
需要配置好相应的证书
给个参考的shell配置(注:工程采用了cocoapods管理第三方库)
重点在xcodebuild、xcrun命令
1 | xxx为具体工程名,记得替换掉,目录结构也可能不一致,需微调 |
升级
前段时间将XCode升级到8.3之后,发现之前那的打包脚本被弃用了,顺便更新下脚本,思路不变,使用export命令生成ipa文件。
使用export命令之前,需要在工程目录添加plist文件,描述打包等相关信息。给个appstore包的plist文件例子。
1 | <?xml version="1.0" encoding="UTF-8"?> |
inHouse证书的例子,只是将method的value改为enterprise即可。还有其他的值:ad-hoc,development等。上面的plist文件还可以添加其他的键值对,但用默认值即可。
Xcode9.0后,archive需要指明描述文件,也就是上面的plist文件需要新增provisioningProfiles键值对。
需要将provisioningProfiles值的yourAppBundleId和对应的yourAppProvisioningProfileName改为你app的值
1 | <?xml version="1.0" encoding="UTF-8"?> |
升级后的打包核心脚本,其中packageRelease.plist的内容与上面的例子类似
- 普通的工程
1 | CURRENT_DIR=$(pwd) |
- 如果工程用了pod之类的管理
1 | CURRENT_DIR=$(pwd) |
第三方
推荐使用 fastlane