Jenkins自动化打包上传蒲公英、fir

iOS项目准备

iOS项目,证书选择,取消自动,Debug与Release各自手机添加对应证书


iOS项目目录下,新增ExportOptions.plist文件,文件内容跟之前用xcode打包ipa文件夹内的ExportOptions.plist一样,其中method改为ad-hoc

新建任务

创建新的构建任务,任务名称可以自行设定,建议是项目名称,需要全局唯一,再选择自由风格的项目风格


General

构建任务的一些基本配置,如名称描述之类的


源码管理


git支持主流的gitlab与github代码管理,因公司团队用的是gitlab,选择git,并填写对应项目的git仓库URL

第一次新建任务填写仓库URL,会出现报错,提示Failed to connect to repository:xxx(截图中没提示报错,因本人已配置ssh),这是因为私有仓库,没有权限直接访问,需要配置ssh获取访问权限。

Jenkins与git都需要配置ssh,因Jenkins服务器是独立的,是使用Jenkins账号登录的,所以需要切换至Jenkins用户重新生产ssh key,并把公钥添加到git服务器

  1. 打开终端,设置密码,建议设置简单的,跟开机密码一样,后期需要使用
    sudo dscl . passwd /Users/jenkins
  2. 切换至Jenkins用户
    su jenkins
  3. 重新生成ssh key
    ssh-keygen -t rsa -C "邮箱"
  4. 获取公钥id_rsa.pub,并添加至git服务器
    cat /Users/Shared/Jenkins/.ssh/id_rsa.pub
  5. 获取秘钥id_rsa,并添加至Jenkins中创建的newCredentials
    cat /Users/Shared/Jenkins/.ssh/id_rsa


在Credentials中,点击下拉选择刚刚创建的Credentials,选择后报错不显示,可以成功访问,选择要打包项目的分支

构建触发器

最初可以暂时不做配置,后期因个人需求,再做配置


构建环境


第一个选择,是设置每次构建前自动清除上一个工作空间,也可以手动清除

点击下面保存,退出配置页面,左侧点击清除


第二个选择,是选择打包项目对应环境下的证书

  1. 返回至Jenkins首页,选择Manage Jenkins,添加Keychains and Provisioning Profiles Management




  2. 获取login.keychain
    终端输入/Users/xxx/Library/Keychains,获取的是login.keychain-db文件,需要复制粘贴至桌面,并修改其文件名,改为login.keychain
  3. 在Keychains and Provisioning Profiles Management页面,选择刚刚修改的文件,再进行upload
  4. 找到电脑的钥匙串访问,找到打包项目的生成证书与发布证书的名称,在Identities中各自填写
  5. 描述文件路径填写/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles,其中注意Provisioning Profiles之间的空格
  6. 点击save

构建

下拉选择Execute shell,编写shell脚本

添加shell脚本

echo '++++++++提供拉取依赖库的代码++++++++'
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 '++++++++生成archive文件++++++++'
# keychain解锁,否则打包签名时会失效,详细问题可以查看后续的错误总结文章中
security unlock-keychain -p "开机密码" ~/Library/Keychains/login.keychain
if [ -d "${WORKSPACE}/builds" ]; then rm -rf ${WORKSPACE}/builds; fi;
mkdir ${WORKSPACE}/builds;
if [ -d "${WORKSPACE}/builds/${BUILD_NUMBER}" ]; then rm -rf ${WORKSPACE}/builds/${BUILD_NUMBER}; fi;
mkdir ${WORKSPACE}/builds/${BUILD_NUMBER};
xcodebuild -workspace ${WORKSPACE}/项目名称.xcworkspace -scheme "项目scheme" -sdk iphoneos archive -archivePath ${WORKSPACE}/builds/${BUILD_NUMBER}/archive

echo '++++++++将archive文件导出为ipa包++++++++'
xcodebuild -exportArchive -archivePath ${WORKSPACE}/builds/${BUILD_NUMBER}/archive.xcarchive -exportOptionsPlist ${WORKSPACE}/ExportOptions.plist -exportPath ${WORKSPACE}/builds/${BUILD_NUMBER}/${JOB_NAME}_${BUILD_NUMBER} PROVISIONING_PROFILE="iPhone Distribution: xxx (xxx)"  -allowProvisioningUpdates

构建后操作

自动化构建后,需要上传对应测试的测试平台蒲公英、fir




其中fir.im Token在fir平台获取,pgyer uKeypgyer api_key在蒲公英平台获取,获取方式直接百度即可

点击保存

立即构建

在左侧点击立即构建,可以在Build History列表中看到构建历史,点击其中一个构建,可以在控制台输出看到构建进程信息




构建结果

  1. 构建状态
    Successful蓝色:构建完成,并且被认为是稳定的。
    Unstable黄色:构建完成,但被认为是不稳定的。
    Failed红色:构建失败。
    Disable灰色:构建已禁用
  2. 构建稳定性
    构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。
  3. 构建历史界面
    console output: 输出构建的日志信息

结束语

目前就可以使用Jenkins进行持续集成了,就很棒!
我在学习配置的过程很曲折,走过了太多的坑,一直雷阵雨,时而转晴,当然了,风雨后必有彩虹,也很美。
Jenkins是一个强大的自动化工具,功能不仅仅如此,还有更多的功能需要我们去挖掘。如果后期有新增的功能,我也会持续更新文章,大家一起进步,有疑问也欢迎在下方留意。

最后,来一张很不错的思维导图,
转载"哥本哈根月光"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353