iOS Fastlane 自动打包发布技术
公司项目采用了这个自动打包技术,但没有使用自动发布技术。
首先介绍一下 Fastlane。
它是自动打包发布工具。
安装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打印历史打包目录和上次打包设置。
代码3输入y继续上次打包,或者输入序号打包指定工程,或者直接输入工程地址。
代码4进行信息确认,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_path、app_review_information、submission_information。
app_rating_config_path文件内容为:
0指代无,每个英文对应着网页上每一条分级信息。
app_review_information与submission_information的内容分别为:
审核内容两个信息内容写在Fastfile文件中就可以了,根据英文信息应该都不难理解,就不多做说明了。
以上就是自动打包发布几乎所有的内容了,欢迎来访查看。😆 😆 😆
-------------------------------我是分割线-------------------------------