Jenkins iOS 持续化集成 分支、邮件自动化
精华Pod库分享
jenkins 安装(可通过两种方式安装)
-
通过官网下载安装
注意:此种方式安装,在持续化集成过程中会出问题,暂时还未解决
-
$ brew install jenkins进行下载安装
个人推荐这种方式,加载过程有点漫长请耐心等待。(没有brew的同学,请自行百度,这里不做介绍)
Jenkins 初始化
- 安装完成之后在终端输入:Jenkins run 启动服务,(方式一安装不需要次步骤)
- 浏览器输入 http://localhost:8080 打开Jenkins服务,
-
初次安装会出现如下界面,到指定路径下辅助秘钥,粘贴到密码框里即可
image
- 初始化个人用户,选择保持登陆,登录到Jenkins服务页面。
项目持续化集成
-
前期准备
-
1、到Jenkins管理里面
Snip20190805_1.png
-
2、找到插件管理
Snip20190805_4.png
-
3、到可选插件里面搜索如下插件安装
使用xcode来进行构建项目,过程繁琐,这里不做详细介绍,我会把截图给出来,大家自行去理解;这里主讲使用xcode build进行构建
(当然除了xcode build,我们也可以使用fastlane、Travis CI进行构建,之前蒲公英官网推荐的命令上传就是fastlane)
Snip20190805_2.png
Snip20190805_5.png
-
4、证书描述文件配置,到Jenkins管理页面里面,找到刚才安装的Keychains and Provisioning Management 插件点击。
Snip20190805_7.png
-
到此路径下/Users/用户/Library/Keychains/login.keychain-db
将login.keychain-db文件copy到桌面,重命名为login.keychain(必须login.keychain),选择login.keychain文件,点击Upload。然后再选择所需的描述文件Upload,之后我们会看到如下界面

对于 code signing identity 这里面的内容,我们直接到钥匙串中去拷贝证书的名字粘贴即可,
注意:可以添加多个不同证书
。
-
构建项目
-
构建自由风格项目
-

-
构建配置
-
1、General
- 这里我们选择Discard old builds构建与舍弃设置,自行设置。
-
This project is parameterized 构建参数配置,选择可选参数配置,这里配置用来选择我们要构建的分支。
Snip20190805_11.png
-
2、源码管理
Snip20190805_12.png
git 账号权限配置
Snip20190821_1.png
Snip20190821_2.png
-
3、构建环境
这里可能会出现问题,如果出现选择不了证书,我们直接保存之前操作退出,重进就可以选择上传的证书信息了。
Snip20190805_13.png
-
4、重点
构建
,这里我们选择脚本Execute shell,这里项目属于cocopod工程,非cocopod工程脚本很简单,自行百度。
-
#!/bin/bash
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
cd $WORKSPACE
/usr/local/bin/pod update --verbose --no-repo-update
echo "~~~~~~~~~~~~~~~~开始执行脚本~~~~~~~~~~~~~~~~"
# 项目 scheme 名称(一般就是我们的工程名称)
project_name="项目名称" \
# 打包模式 Debug/Release
configuration_model=Debug \
# 工程路径
project_path=${project_name}.xcworkspace \
# 归档路径
archive_path="$WORKSPACE/${project_name}.xcarchive" \
xcodebuild clean -workspace ${project_path} \
-scheme ${project_name} \
xcodebuild archive -workspace ${project_path} \
-scheme ${project_name} \
-archivePath ${archive_path} \
-configuration ${configuration_model} \
xcodebuild -exportArchive -archivePath ${archive_path} \
-exportPath "$WORKSPACE/Test" \
-exportOptionsPlist "$WORKSPACE/ExportOptions.plist" \
-configuration ${configuration_model} \
#上传蒲公英
echo '/+++++++ 上传蒲公英 +++++++/'
curl -F "file=@$WORKSPACE/Test/${project_name}.ipa" \
-F "uKey= 蒲公英uKey" \
-F "_api_key= 蒲公英apiKey" \
-F "password= 密码" \
-F "username= 邮箱" \
-F "updateDescription=打包持续化集成" \
https://qiniu-storage.pgyer.com/apiv1/app/upload \
if [ $? = 0 ];then
echo "=============提交蒲公英成功 ============="
else
echo "=============提交蒲公英失败 ============="
fi
开始构建项目

-
5、构建触发器
通过构建触发器,我们可以让Jenkins在预定的时间点,或者时间间隔,自动构建版本。
Snip20190823_9.png
构建后邮件通知配置
- 全局配置
路径
Manage Jenkins ======> Configure system 进行全局配置-
1、细节配置如图
Snip20190823_2.png
Snip20190823_3.png
-



-
项目配置-构建后操作
这里选择Editable Email Notification ,选择默认配置。如下图进行操作
Snip20190823_12.png
Snip20190823_13.png
xcode 插件构建,由于xcode构建过程比较繁琐,大家可以自行探索,加深理解。









如此文对你有所帮助,请加个关注谢谢。后续还会给大家分享成果
谢谢!