Mac当Jenkins slave远程自动编译iOS

在Mac上配置Jenkins

直接从官网下载dmg安装包即可.
关于基础的配置看这篇就够了手把手教你利用Jenkins持续集成iOS项目
配置好后,同时在设置里打开远程登录就可以作为jenkins的slave节点了。

安装插件

Keychains and Provisioning Profiles Management 配置证书和描述文件
Post-Build Script Plug-in 执行脚本插件
Xcode integration xcode编译配置插件

部分插件找不到时,解决方法见 jenkins插件安装
尝试过升级站点后但还是找不到,后来在日本镜像http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/中找到并下载下.hpi文件重启jenkins后生效

添加Mac作为slave节点

安装ssh slaves plugin插件

http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/上找到ssh slaves plugin插件下载.hpi文件并上传后重启jenkins即可

系统设置-》管理节点

slave 节点配置过程如下


image
image

Master创建job

在master创建job,指定在slave上执行。并配置编译时脚本,编译后脚本
在master上创建job,job任务的配置如下:

image
image

由于xcode有自动启动签名机制,因此只要我们在jenkins环境配置中正确添加了keychains和provisionning profiles等,无需设置这里的构建环境。把所有的编译打包工作交给shell脚本去做
构建脚本如下可以接在写在方框内

Jobname 表示jenkisn中的一个任务名称
AppName 表示App名称

#!/bin/sh
# 解锁对login.keychain的访问,codesign会用到
security unlock-keychain -p "password" $HOME/Library/Keychains/login.keychain
# 清除
xcodebuild clean
# 打包签名
xcodebuild -workspace /Users/Shared/Jenkins/Home/workspace/JobName/Appname.xcworkspace -scheme Appname -configuration Development archive -archivePath /Users/Shared/Jenkins/Home/workspace/Jobname/Appname -destination generic/platform=iOS
# 导出ipa
xcodebuild -exportArchive -archivePath /Users/Shared/Jenkins/Home/workspace/Jobname/Appname -exportPath /Users/Shared/Jenkins/Home/workspace/Jobname/Appname -exportOptionsPlist /Users/Shared/Jenkins/Home/workspace/PonyCarTest/exportOptions.plist
# 上传
curl -F "file=@/Users/Shared/Jenkins/Desktop/PonyCar/PonyCar.ipa" -F "uKey=蒲公英生成" -F "_api_key=蒲公英生成" https://qiniu-storage.pgyer.com/apiv1/app/upload

编译后发现其实,master会在slave节点主机上生成${jenkins安装目录}/workspace/Job名称,项目的代码都在这个目录下,在${jenkins安装目录}/下新增slave.jar文件,通过这个调起本地的jenkins.jar启动本地的服务,然后执行编译时脚本

将mac作为一个slave节点执行iOS的打包过程,主要是为了将iOS、Android的自动化打包集成到一个jenkins上去管理。当然你也可以不作为slave节点直接在本地打包编译项目。

命令行启动jenkins:
java -jar jenkins.war --httpPort=8888

localhost:8080/restart   重启
localhost:8080/exit      退出
localhost:8080/reload    重新加载

主要参考文章:
手把手教你利用Jenkins持续集成iOS项目
使用Jenkins搭建iOS/Android持续集成打包平台
Jenkins 构建 iOS 持续集成
iOS 通过Jenkins 自动构建ipa
Jenkins配置节点(解决Linux上iOS打包)

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

推荐阅读更多精彩内容