iOS Fastlane自动构建打包、发布、部署jenkins

整理时间:2017年05月02日13:03:16

注:
1. 均在Xcode8以后环境,Xcode8以前是否适用有待你们自行测试,如果测试了有问题,请留言评论
2. 所有操作均在iTerm2里完成,iTerm2和终端差不多,不过个人习惯,如果对其感兴趣的,可以看我关于iTerm2的文档

1.安装fastlane

1.打开iTerm2,键入以下命令

sudo gem install fastlane -n /usr/local/bin

2.确保Xcode安装了最新版本的命令行工具

➜  ~ xcode-select --install

3.如果你的fastlane加载缓慢,请尝试运行

➜  ~ gem cleanup

2.安装fir

1.打开iTerm2,键入以下命令

➜  ~  sudo gem install firim -n /usr/local/bin

2.使用系统自带的 Ruby 安装, 需确保 ruby-dev 已被正确的安装

➜  ~ xcode -select --install

3.开始操作项目(注:如果要发布到其他平台,只需配置相应的API Token,这里只拿fir做讲解举例)

1.进入项目,如图所示

进入项目文件夹初始化

2.执行fastlane init注意事项
中间会让让你按提示输入苹果开发者的账号、密码,只有苹果开发者账号才可以,普通的苹果账号是不可以继续操作的

3.执行完fastlane init后
项目的根目录会生成fastlane文件夹,里面有fastlane的配置文件,一般一个是AppFile文件,一个是Fastlane文件

AppFile:保存苹果开发者的相关信息,项目的相关信息等
Fastlane:运行脚本

4.编辑Fastlane文件
注:fastlane文件里面默认的配置信息已经足够了,但是也有其他的相关需求,如果想完成一般需求,请清空这个文件,将下面的配置文件复制并粘贴到相关位置

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do
  desc "Test app"
  lane :adhocR do
    increment_build_number_in_plist(target: 'Test')
    xcode_select "/Applications/Xcode.app"
    gym(
        silent: true,
        clean: true,
        workspace: "Test.xcworkspace",
        scheme: "Test",
        include_bitcode: false, 
        include_symbols: false,
        export_method: "ad-hoc",
        output_directory: "./fastlane/build/adhocR",
        output_name: "Test_adHocR")
    firim(
        firim_api_token: "396e097bb4b88b012474fcc7c0XXXXXX")
  end

  lane :adhocD do
    increment_build_number_in_plist(target: 'Test')
    xcode_select "/Applications/Xcode.app"
    gym(
        silent: true,
        clean: true,
        workspace: "Test.xcworkspace",
        scheme: "Test",
        include_bitcode: false, 
        include_symbols: false,
        export_method: "ad-hoc",
        output_directory: "./fastlane/build/adhocD",
        output_name: "Test_adHocD")
    pgyer(
        api_key: "215930df29d28b3b383ce3b45dbXXXXX",
        user_key: "68413ffb92d28a126729c6537aaXXXXX")
  end

end

注:我说的指定的打包输出方式,你们可能不明白,从这张图,就好明白很多了

ipa导出方式

图中自上而下分别为:
app-store
ad-hoc
enterprise
development

5.申请fir账号,并获得api token
访问https://fir.im/ , 并注册账号,获取APIToken,APIToken如图所示

04.jpg

6.将获取到的APIToken置换到fastlane文件中

3.运行

1.打开iTerm2,cd到工程目录,如图所示

进入工程目录

2.执行fastlane ios ci命令,如图所示

执行fastlane脚本

3.编译完成,自动上传到fir,如图所示

编译完成结果

4.到fir网站,查看自己上传的app

进入fir网站查看测试app

4.安装并部署Jenkins

1.下载Jenkins.war包
点击这个链接 http://mirrors.jenkins.io/war-stable/latest/jenkins.war , 下载最新的Jenkins.war包

2.cd到下载Jenkins.war目录,执行下面的命令, 如图所示

java -jar jenkins.war

运行jenkins

3.执行完后,在浏览器输入localhost:8080
4.弹出Jenkins安装界面,会让你输入安全密码,这个密码会在安装提示界面有,让你输入这个密码,选择默认安装
5.然后新建管理员用户密码
6.下次启动Jenkins, iTerm2输入下面的命令

➜ ~ java -jar /Applications/Jenkins/jenkins.war –httpPort=8080

7.关闭Jenkins,iTerm2输入下面的命令

➜ ~ ps 
// 这里是显示占用的端口,你只要输入ps查看端口号就好了
PID TTY TIME CMD 
12706 ttys000 0:33.17 /usr/bin/java -jar jenkins.war –httpPort=8080
// 杀死12706进程
➜ ~ kill -9 12706

8.注意:启动后ITerm2窗口不要关闭,否则会失去连接
9.所有的都配置完了之后的页面

配置完成界面

10.配置Jenkins SSH,如图所示

Credentials -> System -> Add domain

配置SSH步骤1

之后会弹出下图所示的内容,之后请接11

配置SSH步骤2

11.私钥与公钥

➜ ~ ssh-keygen -t rsa -C "hsuyelin@163.com" 

按照提示操作,遇到密码,请输入密码
然后,执行下面的操作

➜  ~ open .ssh

会打开盛放公钥与私钥的文件夹,里面有两个文件,一个是id_rsa(私钥),一个是id_rsa.pub(公钥)
打开公钥,复制里面所有的内容填入托管平台的SSH处,打开私钥,复制里面所有的内容按下图要求填写

配置jenkins私钥

12.新建任务
点击新建,按照如图所示配置

新建任务
配置git
配置额外脚本

13.构建任务
点击立即构建

立即构建

构建控制台

构建过程

14.注意
1)构建尽量保证完整提交
2)如果想构建其他分支,在任务配置中,修改分支

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

推荐阅读更多精彩内容