iOSJenkins自动化打包并发布至蒲公英

[TOC]

1.Jenkins安装

首先简单介绍一下Jenkins的安装,网上有很多教程。 1.1推荐使用osx系统自带的homebrew来安装jenkins。Objc brew install Jenkins第一步需要安装至少java1.8 ,如果没有安装会有提示java安装地址 现在安装java需要有Oracle账号,无法注册的就网上找个别人已经注册的账号。

avatar

java安装完毕,继续下面步骤,链接 launchd 配置文件Objc $ ln -sfv/usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents //如果要其他机器也可以访问,把ip地址改为广播地址:--httpListenAddress=0.0.0.0 $ launchctl load~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist1.2命令行启动Jenkins Objc jenkins一切顺利的话,打开浏览器输入:http://localhost:8080/ 接下来按照Jenkins提示添加账号,安装推荐插件即可

2.Jenkins的使用

2.1安装Keychains and Provisioning Profiles Management(管理本地的keychain和iOS证书的插件) 在Jenkins系统管理插件管理中搜索下载即可。
2.2配置Keychains and Provisioning Profiles Management 安装好该插件,会在系统管理中出现,点击进入即可。 需要上传login.keychain文件,该文件获取方法,在终端中输入Objc cd ~/Library/Keychains点击Keychains and Provisioning Profiles Management插件页面中的选取文件将login.keychain文件upload之后,会出现下图的界面,根据需要将证书添加进去即可,但是由于macOS10.12以及以后的系统里面没有login.keychain文件,只有login.keychain-db,可以复制出来删除-db,也可以创建一个快捷方式名字叫做login.keychain,upload就好了。(上传keychain,路径用自己改名后的那个) 上传code signing identify,在keychain中找到对应打包证书,显示简介,将名字复制写到code signing identify这一栏即可,然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload。 Provisioning Profiles Directory Path这一栏的是固定格式的/Users/用户名/Library/MobileDevice/Provisioning Profiles (这是固定格式,只需要把用户名替换成自己的mac用户名即可,可以试着用终端一层层进入 cd /Users/用户名/Library/MobileDevice)

3.配置任务

点击左上角新建任务,创建一个自由风格的任务,然后在选择丢弃旧的构建,至于天数和保持的最大个数,按照自己的需求来就好。 由于项目中有多个环境需要配置,在此选择参数化构建。
AB75090B-F2CC-4E50-B159-604927507721.png

源码管理
image.jpeg

注意设置下Additional Behaviours以防请求超时代码下载失败。 构建触发器 接下来是构建触发器,也就是什么时候触发自动打包,这里不构建触发器。需要可自行填写。 构建环境 在构建环境里面勾选Keychains and Code Signing Identities和Mobile Provisioning Profiles,Keychains and Code Signing Identities是打包需要的证书,Mobile Provisioning Profiles是打包需要的配置文件,都是可以自己选择的。如图
image.jpeg

直接用 fastlane 这个工具,构建环境不需要特别设置。fastlane 会自动读取本地 iOS 项目中设置的签名等信息,所以需要保证本地 iOS 工程已经设置好了正确的签名信息和 Provisioning Profiles 等文件,并在 keychain 中已经加入了正确的证书。否则后续的操作中可能会出现错误。如果这里没有设置好,请用 Xcode 打包工程进行相关设置即可。如果是xcode 插件则需要配置构建环境。 接下来就是打包了,因为Jenkins对新版的Xcode插件兼容不好,只能用脚本来打包,以下是使用fastlane来打包。点击增加构建步骤,选择执行shell脚本

5.png

因为司机端配置了fastlane,司机端开发也可自行在终端进行自动化打包。没有配置的,在电脑安装下fastlane环境,之前都有写如何安装fastlane环境。 安装好fastlane环境,也可以写以下代码打包。蒲公英Jenkins + fastlane自动化打包文档 Objc IPANAME="jinkens-myapp" fastlane gym --export_method ad-hoc --output_name ${IPANAME} MSG=git log -1 --pretty=%BPASSWORD=123456 curl -F "file=@${IPANAME}" -F "uKey=USER_KEY" -F "_api_key=API_KEY" -F "updateDescription=${MSG}" -F "password=${PASSWORD}" https://qiniu-storage.pgyer.com/apiv1/app/upload也可使用文章后上传的脚本或者查询资料写其他脚本打包。 上传蒲公英也可使用jenkins插件UPLOAD TO PGYER,下载该插件,增加构建步骤,选择该插件即可。Jenkins蒲公英插件上传 附上持续化打包成功图
image.jpeg

image.jpeg
image.jpeg

4.踩坑记录

4.1 本文使用的打包方式,如果jenkins控制台输出报找不到Xcode Comand Line Tools,去Xcode偏好设置,location 勾选Comand Line Tools
4.2 如果jenkins控制台输出报找不到pyger plugins 终端cd到jenkins下载的项目根目录 执行fastlane addplugin pgyer
4.3 如果选择的参数化构建,发现选择打包的scheme对不上jenkins选择的scheme,则去Xcode manager scheme 取消勾选target再重新勾上就行。
4.4 蒲公英最近改动,现在上传强制需要邀请访问方式,需要设置密码,或者回答问题,所以在写脚本时,一定要设置password等, install
type!,否则会上传失败,报installType error错误。
4.5 使用shell脚本 xcodebulid时,注意shell脚本空格传参问题,带空格的参数加双引号,例如"${scheme_name}"
4.6 描述文件设置,将jenkins部署的电脑配置好证书和描述文件,否则无法打包 4.7 shell脚本编译方式设置UseModernBuildSystem,否则项目编译可能会报重复库错误
4.8 jenkins打包请勿使用development描述文件,否则无法打包 4.9如果切换tag,或者分支,jenkins打包报找不到对应scheme,则在Xcode manager scheme,勾上需要的scheme,并点击右上角Autocreate Schemes Now

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

推荐阅读更多精彩内容