iOS Jenkins自动化打包 上传fir、蒲公英、邮件、钉钉提醒

一、环境配置

注意,本文章是以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 默认就可以
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

SSH

终端执行一下操作,获取公钥

cat ~/.ssh/id_rsa.pub

填入保存即可

9、配置项目依赖的证书与描述文件

其实勾选自动签名,不用配置证书和描述文件也可以。

1)钥匙串文件路径:

~/Library/Keychains/

login.keychain-db

由于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、基本使用
主板
item页面
日志信息

二、环境配置

此处不是用的shell构建,以后再研究。

1、新建item
新建item
2、填入任务名称、选择Freestyle project
Freestyle project
3、General、填写描述
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

填入上述命令

更新Pods
7、配置Xcode部分

1)增加构建步骤-Xcode,以自动签名为例

增加构建步骤-Xcode

自动签名不需要填写Team ID

自动签名不需要填写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就可以了

API Token

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

配置一下信息,保存即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值