一、环境配置
注意,本文章是以Jenkins2.263.4为例
1、首先安装Java环境:官网下载地址
2、安装Jenkins
建议下载Jenkins 2.263.4版本,因为最新版本存在login.keychain无法上传的bug, 在Jenkins官网下载下载完成后,打开终端,进入到 war 包所在目录,执行以下命令:
java -jar jenkins.war --httpPort=8080
待Jenkins启动后:
3、登录
在浏览器页面输入以下地址,就打开Jenkins管理页面了
http://localhost:8080
登录密码路径
~/.jenkins/secrets/initialAdminPassword
进入~/.jenkins/secrets/initialAdminPassword路径查看密码,输入密码登录。
5、插件安装
选择安装推荐的插件
此过程据说很慢,但是我用的手机热点,没有科学上网,还是很快的。5分钟左右
6、创建管理员
7、Jenkins URL 默认就可以
8、进入首页,先安装额外的插件
1)点击Manage Jenkins - Manage Plugins
2)搜索想要安装的插件
这里需要安装的插件有:
1)Keychains and Provisioning Profiles Management: 证书与描述文件的管理
2)Xcode integrationXcode:打包的插件,所以iOS的打包只能部署在Mac系统
9、配置项目的访问SSH私钥
如果你的电脑没有配置过SSH,此处以码云为例,可看码云官方文档,配置好SSH后再给Jenkins配置
创建一个SSH
终端执行一下操作,获取公钥
cat ~/.ssh/id_rsa.pub
填入保存即可
9、配置项目依赖的证书与描述文件
其实勾选自动签名,不用配置证书和描述文件也可以。
1)钥匙串文件路径:
~/Library/Keychains/
由于Jenkins里不能上传login.keychain-db这样后缀的文件,所以手动复制一份login.keychain-db到桌面,然后把文件名修改成login.keychain
我们再次来到Manage Jenkins 选择Keychains and Provisioning Profiles Management
点击选取文件,选取login.keychain后点击Upload
证书名称为钥匙串里常用名称,双击某个证书即可打开,copy一下就可以了
输入完后先保存,在上传Provisioning Profiles
2)同样的方式,点击Keychains and Provisioning Profiles Management,讲描述文件上传,Provisioning Profiles Directory Path的路径写
其中{USERNAME}改为自己电脑的名称
/User/{USERNAME}/Library/MobileDevice/Provisioning Profiles
10、配置邮箱系信息
如果需要邮件通知,则需要配置此项
a.进入Manage Jenkins - Configure System
b.填写系统管理员邮件地址
c.填写邮箱信息
d.全局设置邮件发送出发事件、这里选Always,是任何事件都会发送邮件
11、基本使用
二、环境配置
此处不是用的shell构建,以后再研究。
1、新建item
2、填入任务名称、选择Freestyle project
3、General、填写描述
4、源码管理
如果报错,说明是SSH配置有问题
5、构建触发器和构建环境,按需填写,此处我没设置
6、构建
1)如果用到了cocopods需要先用shell拉取pods仓库
#bin/zsh -l
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
cd $WORKSPACE/
/usr/local/bin/pod update --verbose --no-repo-update
选择Execute shell
填入上述命令
7、配置Xcode部分
1)增加构建步骤-Xcode,以自动签名为例
自动签名不需要填写Team ID
2)General build settings:一般设置
Settings部分
Clean before build : 勾选,据说不勾选启动图会有问题
Configuration:分Debug和Release,我要打可调式包,所以写的Debug
Xcode Schema File:如果是用到Cocopods,需要填写工程名
Pack application,build and sign .ipa:需要勾选
按需设置一下选项
Export method :development、ad-hoc、enterprise、app-store
3)Code signing & OS X keychain options:代码签名设置
此处我们选的自动签名
Automatic Signing :勾选自动签名
如果不想自动签名,选择下面的Unlock Keychain,前提是需要配置login.keychain和描述文件
3)Advanced Xcode build options:高级选项
8、上传fir.im、上传蒲公英、发送邮件、发送到钉钉群
1)上传fir.im
使用的是fir-cli上传,下面几个连接提供参考
介绍:https://github.com/FIRHQ/fir-cli
安装:http://blog.betaqr.com/use-fir-cli-in-jenkins/
使用:https://github.com/FIRHQ/fir-cli/blob/master/doc/publish.md
我们回到Jenkins中,找到上面的item,打开配置,在最下面增加构建步骤,选择Execute shell
根据fir-cli使用连接中介绍,编写一下shell
fir p ${WORKSPACE}/build/Debug-iphoneos/JenkinsDemo.ipa -Q -T abcdefghigklmnopqrstuvwxyz
需要修改的地方有两点
a、ipa路径:${WORKSPACE}/build/Debug-iphoneos/JenkinsDemo.ipa
b、fir的API token:abcdefghigklmnopqrstuvwxyz
fir的API Token去fir平台获取,将两者换成自己的就可以了。
c、头像,点击API token
d、copy就可以了
2)发送到钉钉群,通过Webhook实现
当上传fir成功后,我们可以发消息到钉钉群,这里需要在钉钉群配置一个机器人。
a.在需要发消息的钉钉群,点击群设置 - 智能群助手 - 添加机器人
选择自定义
安全设置,我们选择自定义关键词
关键词添加为url
我们讲Webhook的地址复制出来,截取地址里的access_token备用
在上一步上传fir的shell脚本中加入access_token值就可以发送到群里了
shell脚本改为
fir p ${WORKSPACE}/build/Debug-iphoneos/JenkinsDemo.ipa --dingtalk-access-token="zyxwvutsrqpo" -Q -T abcdefghigklmnopqrstuvwxyz
access_token : zyxwvutsrqpo 讲这个值换成自己的就可以了
3)发送邮件
回到配置页面,滑到最下面,点击增加构建后操作步骤
选择Editable Email Notification
多个邮箱地址用英文逗号隔开
Content Type:选择Plain Text(text/plain)就可以
Triggers触发器按照下图配置,保存即可
3)上传蒲公英
先放一个蒲公英官方文档:https://www.pgyer.com/doc/view/jenkins_plugin
打开蒲公英,在API信息中获取API Key和User Key
在Jenkins插件中安装Upload to pgyer插件
返回item中的配置
在增加构建后操作步骤中选择Upload to pager with apiV1
配置一下信息,保存即可