iOS自动化构建--Jenkins
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
准备工作
Java 8 ( JRE 或者 JDK 都可以)和homebrew
java8可以下载安装或者
$ brew cask install homebrew/cask-versions/java8
java安装完成后输入
$ brew install jenkins
成功后需要启动jenkins,jenkins的启动\关闭\重启
$ brew services start jenkins
$ brew services stop jenkins
$ brew services restart jenkins
jenkins 配置
服务启动后,浏览器输入http://localhost:8080/,按照页面提示找到密钥并继续
初始化后安装推荐插件(建议安装),并按照提示创建用户(印象中账号密码忘记会比较麻烦)
![](https://img.haomeiwen.com/i4240198/878e322c356548cd.png!thumbnail)
到此本地jenkins初始化完成
插件和插件配置
进入插件管理,选择可选插件选项,在搜索栏中搜索出我们需要的插件进行安装,插件安装是一个漫长的过程耐心等待
![](https://img.haomeiwen.com/i4240198/f5eeec5bb4e07abd.png!thumbnail)
我这里安装的插件为
1.Keychains and Provisioning Profiles Management(该插件将针对iOS和OSX项目的钥匙串和移动供应配置文件管理集成到Jenkins中。)
2.Xcode integration(该插件增加了调用Xcode命令行工具的能力,以自动构建和打包iOS应用程序。)
3.Git Parameter(该插件直接使用了 Git插件和 Git客户端插件。)
配置
Keychains and Provisioning Profiles Management
1.从系统管理进入
![](https://img.haomeiwen.com/i4240198/b480895eb7794bb1.png!thumbnail)
2.文件准备
钥匙串文件
~/Library/Keychains/login.keychain-db
打包的描述文件
~/Library/MobileDevice/Provisioning Profiles/
在find中command+shift+g进入文件路径
3.上传文件
本地Keychain文件后缀导游-db,直接上传是无效的,需要把 login.keychain-db复制出来重命名去掉后缀-db,然后上传
Password是本机密码
Code Signing Identity 去钥匙串找到开发者证书名称并填写
![](https://img.haomeiwen.com/i4240198/1ee7b221b87b441b.png!thumbnail)
Provisioning Profiles文件可以上传多个,默认路径为
/Users/用户名/Library/MobileDevice/Provisioning Profiles
最后save即可
Xcode integration配置
同样从系统管理-Configure System-Xcode Builder,填写你的开发者信息
![](https://img.haomeiwen.com/i4240198/c1479e9cdbcc2f0e.png!thumbnail)
创建项目
我的视图-新建任务
![](https://img.haomeiwen.com/i4240198/4f425a66c5778c31.png!thumbnail)
删除旧缓存,按需求设置
![](https://img.haomeiwen.com/i4240198/431f201013cceeac.png!thumbnail)
源码管理
这里以git为例
![](https://img.haomeiwen.com/i4240198/7f8a02d5ad4f9f8c.png!thumbnail)
点击添加-jenkins,可以通过账号密码或者ssh来登录git
![](https://img.haomeiwen.com/i4240198/6e81f9ff62dcf13a.png!thumbnail)
完成后可以保存,出去build一下,可以在输入日志里边看到git本地路径(如果需要脚本修改项目配置会用到)
构建环境
先选择这两项,然后保存,再回来这里就会有内容自动填充了
![](https://img.haomeiwen.com/i4240198/39ea2689bfeb7212.png!thumbnail)
![](https://img.haomeiwen.com/i4240198/9b1156d13c1da4c9.png!thumbnail)
构建
在xcode构建前,可以添加shell构建执行你本地的脚本.sh文件
![](https://img.haomeiwen.com/i4240198/ee46ef63700ac152.png!thumbnail)
xcode
'Development Team' (选择你的团队)
'Target'(如果有多个工程target 需要填,否则忽略)
'Clean before build' (建议勾选,等于xcode clean)
'Configuration' (编译模式 'Release' 或者 'Debug')
'Xcode Schema File' (你要打包的项目名字)
'Generate Archive' (建议勾选,Archive是否保留)
![](https://img.haomeiwen.com/i4240198/2a9c043322e1fcb8.png!thumbnail)
'Pack application, build and sign .ipa?'(这个勾选了才有下边的选项)
'Export method' (打包方式,只能填写 'development', 'ad-hoc', 'enterprise' or 'app-store')
'.ipa filename pattern' (打包后的ipa 名字)
'Output directory' (ipa 输出路径)
![](https://img.haomeiwen.com/i4240198/508144e51fb173dd.png!thumbnail)
'Automatic Signing'(自动配置,前提是你的钥匙串和描述文件配置无误)
'Read from Xcode Project'(xcode配置)
'Manual signing'(手动选择描述文件)
'Change bundle ID?'(需要输入新的id和info.plist文件路径)
![](https://img.haomeiwen.com/i4240198/f34947d470cead3c.png!thumbnail)
到这里xcode 配置就完成了,这个时候我们去构建一次,构建成功后在刚刚填写ipa输出路径就可以看到一些文件了
执行shell
//验证ipa
xcrun altool --validate-app -f 刚才导出ipa的路径/.ipa -t iOS -u 开发者账号 -p 双重验证的密码
//上传ipa到AppStore
xcrun altool --upload-app -f 刚才导出ipa的路径/.ipa -t iOS -u 开发者账号 -p 双重验证的密码