IOS科技iOS开发

iOS Fastlane 自动打包发布技术

2018-02-23  本文已影响421人  随行的羊

公司项目采用了这个自动打包技术,但没有使用自动发布技术。

首先介绍一下 Fastlane。

Fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.

它是自动打包发布工具。

安装fastlane之前,我们得安装ruby,因为fastlane使用ruby语言写的,安装ruby前,我们要先安装一个mac软件包管理工具。

1、使用Homebrew管理mac软件包,控制台安装命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完后,使用brew -h检测是否安装成功。


Homebrew安装成功

2、安装ruby,使用控制台安装命令:

brew install ruby

安装完后,使用ruby -h检测是否安装成功。

Ruby安装成功

3、Xcode需要升级到最新版本,安装Xcode命令行工具。

4、安装fastlane,使用控制器安装命令:

sudo gem install fastlane -NV

安装完后,使用fastlane -h检测是否安装成功。

Fastlane安装成功

完成安装之后,我们就可以开始使用了,具体的API,可以查看这里Fastlane帮助文档。(注:自动打包使用的Fastlane版本为2.58.0)

我自己配置了自动打包的界面:


自动打包界面

历史打包序号用来保存历史打包的路径,上次打包设置可以进行快速打包。

工程打包的目录为:

打包目录

说明:
packegeFile:用来存放打包的文件。
all.txt:用来存放历史打包的路径。
history.txt:用来存放上次打包设置。
README.md:为帮助文档,系统生成。
report.xml:测试套件,存放着每个功能的执行时间。
Fastfile:需要我们编写代码的区域。

看一下Fastfile工程代码:


代码1

代码1说明了fastlane的版本,以及运行平台。

代码2

代码2打印历史打包目录和上次打包设置。

代码3

代码3输入y继续上次打包,或者输入序号打包指定工程,或者直接输入工程地址。

代码4

代码4进行信息确认,5秒后开始自动打包。

代码5

代码5是主程序内容,使用gym打包指令。
分别对xcodeproj工程和xcworkspace工程进行分别处理,针对不同命令进行说明:

clean:是否清理工程,一般是设置true。
project:xcodeproj的工程目录地址。
workspace:xcworkspace工程目录地址。
scheme:scheme名称。
export_method:打包方式,有企业、adhoc、appstore。
archive_path: xcarchive文件的输出路径。
output_directory:ipa文件的输出路径。

问题1:如果运行第二次失败时,可以使用以下代码,将一些文件去掉,就可以运行成功。

删除多余文件

问题2:如果运行时出现Couldn't find specified scheme错误。

到工程中,点击Manage Schemes,然后在需要打包的Scheme后面的Shared打勾就OK了。

Shared打勾

既然要说,就一次性说完,之前讨论的是自动打包,接下来介绍自动发布。因为目前的公司没有用到自动发布,所以我的工程代码还停留在2017年6月的时候,不过应该够用,借鉴意义还是有的。(注:自动发布使用的Fastlane版本为2.14.2)

工程目录

Deliverfile:放置开发者账号和app的bundle ID。
1024_icon:放置1024X1024的图标。
ipa_File:放置ipa文件。
metadata:放置版权信息、app分类信息以及一些多语言文本设置,如app名称、关键词等等。
screenshots:屏幕快照,截图信息。
rating_config.json:app分级,还记得app的使用年龄在哪里配置吗?就是这里。

然后看下Fastfile代码文件:

produce指令

produce创建App的指令,根据英文的意思也不难理解。

pem指令

pem创建推送证书的指令,pem是给php后台使用的,用户也可以将p12文件转给jks,给java后台使用。

sigh指令

sigh创建描述文件的指令,第一条是创建appstore的描述文件,第二条是创建AdHoc的描述文件。

接下来是最关键的上架指令,不少小伙伴都卡在这里,这里将详细说明一下:

上架指令

username:开发者账号,为邮箱地址。
app_identifier:所要上架的app的bundle ID。
ipa:ipa文件目录,还记得刚才介绍过的目录吗?对,就是那里。
app_icon:1024X1024图标目录,刚才介绍过。
screenshots_path:app应用截图目录,刚才也介绍过。
metadata_path:元数据文件存放目录,刚才都介绍过。
force:设置true,会跳过预览页面,直接上架。
app_rating_config_path:设置app分级,刚才介绍过。
app_review_information:App联系人信息。
automatic_release:是否自动发布。
submission_information:提交审核后填写的选项设置。
submit_for_review:是否提交审核。
price_tier:设置0代表免费。

似乎还没完,我们再说说这三个:app_rating_config_pathapp_review_informationsubmission_information

app_rating_config_path文件内容为:

app_rating_config_path文件内容
0指代无,每个英文对应着网页上每一条分级信息。

app_review_informationsubmission_information的内容分别为:

审核内容

两个信息内容写在Fastfile文件中就可以了,根据英文信息应该都不难理解,就不多做说明了。

以上就是自动打包发布几乎所有的内容了,欢迎来访查看。😆 😆 😆

-------------------------------我是分割线-------------------------------

2018-02-23

上一篇下一篇

猜你喜欢

热点阅读