一.简介
自动化是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。自动化技术广泛用于工业、农业、军事、科学研究、交通运输、商业、医疗、服务和家庭等方面。
把重复且无技术含量的事情交给机器去做,为了较少不必要的打包时间浪费,自动化打包技术就由此而生。
我的项目是基于Jenkins自动打包的,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
流程
1. Jenkins 安装(我的项目采用版本分别是Jenkins: jenkins-2.190.1 )
注意以上的jekins版本支持的最高java JDK 为 11
打开Jenkins官网下载最新的pkg安装包。安装完成之后,Safari可能会自动打开,如果没有自动打开,打开浏览器,输入http://localhost:8080。
2. java 环境安装(我的项目采用版本分别是Java: jdk-11.0.5_osx-x64_bin )
若打开是空白页面说明需要安装java环境,如果正常打开跳过此步骤。
JAVA JDK 下载链接 注意以上版本的Jenkins 只支持 11 以下的 java 版本,否则无法继续流程。
三. 打开http://localhost:8080 前的操作
- 确保系统隐藏文件已经开启(终端输入
$ defaults write com.apple.finder AppleShowAllFiles -bool true
进行打开隐藏文件,关闭把最后ture 改为false) - 接着终端输入
$ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
然后提示输入密码,就按照要求输入密码 - 最后终端输入
$ java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
就完成Jenkins启动了,会出现如下提示
此时在浏览器输入http://localhost:8080即可。
注意: 这种方式打开的Jenkins在自动化打包时,不能关闭运行Java环境的终端。
三. Jenkins 账号设置
- 浏览器输入 http://localhost:8080 会出现如下界面
- 如上红色的路径表示密码的存储路径,找到路径下的文件(如果无访问权限,右键点击文件夹 -> 显示简介 -> 打开共享与权限 ,给everyone加上读与写权限,进入文件夹后可以看到名字为initialAdminPassword的文件。)然后将文件里的密码拷贝输入即可。
接着 然后点击install suggested plugins ,即下载推荐插件。 会出现如下进度 - 出现以上图,恭喜你成功下载插件了。
- 接着就是设置账号密码,你会看到如下的设置界面
- 以上是设置完成后,jenkins到此就搭建完成,接下来需要配置项目就OK了。
四. 配置Jenkins 插件
- 我的项目是采用Git管理,所以去下载 GitLab 插件,点击系统管理->管理插件,在可选插件中下载,然后安装
- Keychains and Provisioning Profiles Management 插件下载配置
选择下载以下插件
下载安装完成后,会在插件管理看到对应的点击进入
如图这里可以上传的文件时钥匙串和描述文件。不能直接上传证书文件。钥匙串的目录可以打开钥匙串点击登录钥匙串查看。在点击钥匙串会看到对应路径
然后在文件夹中输入对应路径查找到指定数据库。
然后拷贝一份安装有我们打包证书的钥匙串文件,即login.keychain-db。此时需要注意,上传到Jenkins的只认.keychain后缀和.mobileprovision后缀的文件,其他文件都会上传失败。所以我们要把这个上传的钥匙串后缀的-db去掉,文件名修改成login.keychain,然后再上传。
上传成功后Keychains下边会显示Filename为login.keychain,可以添加打包用的证书。
最后添加描述文件,先添加描述文件的导向路径,
/Users/[user name]/Library/MobileDevice/Provisioning Profiles
。描述文件和钥匙串一样的添加上传方式。添加后就可以看到描述文件信息了。
点击保存按钮就完成钥匙串证书配置了。
五. 配置项目-工程任务
- 首先创建一个任务
输入对应的任务名称和勾选构建一个自由风格的软件项目,然后点击确定 - 我的项目是采用git管理
在源码管理中勾选git,输入对应的远程仓库地址,以及配置git账号密码。 - 设置轮询
Poll SCM (poll source code management) 轮询源码管理
需要设置源码的路径才能起到轮询的效果。一般设置为类似结果: 0/5 * * * * 每5分钟轮询一次
Build periodically (定时build)
一般设置为类似: 00 20 * * * 每天 20点执行定时build 。当然两者的设置都是一样可以通用的。 - 添加脚本
配置好xcode运行环境,pod 仓库等等完毕后。
设置对应的脚本码
首先拉取远程仓库,然后打包。 - 最后我的项目是上传蒲公英
脚本码如下
#要上传的ipa文件路径
IPA_PATH=${EXPORTPATH}/${AppName}.ipa
#执行上传至蒲公英的命令
echo "++++++++++++++upload+++++++++++++"
#蒲公英上的User Key
uKey="89c4bf****************7ae5447"
#蒲公英上的API Key
apiKey="267********************76cc"
#蒲公英上传
MSG=`git log -1 --pretty=%B`
echo "------------蒲公英上传包--------------"
curl --retry 3 -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" -F "updateDescription=Jenkins自动构建【DailyBuild】 commit msg:${MSG} BuildNum:${BUILD_NUMBER},GIT-SHA:${GIT_COMMIT}" http://www.pgyer.com/apiv1/app/upload```
### 总结:到此就可以完成一些列自动化打包操作了,一次配置终身受益。