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.进入项目,如图所示

《iOS Fastlane自动构建打包、发布、部署jenkins》 进入项目文件夹初始化

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

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 ipa导出方式

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

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 04.jpg

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

3.运行

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 进入工程目录

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 执行fastlane脚本

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 编译完成结果

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 进入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

《iOS Fastlane自动构建打包、发布、部署jenkins》 运行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.所有的都配置完了之后的页面

《iOS Fastlane自动构建打包、发布、部署jenkins》 配置完成界面

10.配置Jenkins SSH,如图所示

Credentials -> System -> Add domain

《iOS Fastlane自动构建打包、发布、部署jenkins》 配置SSH步骤1

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 配置SSH步骤2

11.私钥与公钥

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

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

➜  ~ open .ssh

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 配置jenkins私钥

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 新建任务
《iOS Fastlane自动构建打包、发布、部署jenkins》 配置git
《iOS Fastlane自动构建打包、发布、部署jenkins》 配置额外脚本

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

《iOS Fastlane自动构建打包、发布、部署jenkins》 立即构建

构建控制台

《iOS Fastlane自动构建打包、发布、部署jenkins》 构建过程

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

    原文作者:hsuyelin
    原文地址: https://www.jianshu.com/p/dac1ce3d7de8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞