热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

整理时间:2017年05月02日13:03:16注:1.均在Xcode8以后环境,Xcode8以前是否适用有待你们自行测试,如果测试了有问题,请留言评论2.所有操作均在iTerm2

整理时间: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)如果想构建其他分支,在任务配置中,修改分支


推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • OWASP(安全防护、漏洞验证工具)开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织 ... [详细]
author-avatar
闻雪儿1116_414
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有