最近手里好多项目都是需要打企业版本并上传到fir上去,每次构建版本至少要10分钟,时间长不是最难忍受的,难忍受的是整个过程需要你全程参与,比如选择证书、比如下一步,下一步等,一套搞下来,心累,因此找一个自动化打包工具来节省体力刻不容缓了,求生欲啊,本次我找的工具就是fastlane(docs.fastlane.tools),一款用ruby开发的构建工具,可以自动打包并上传到APPStore,上传到fir,上传到蒲公英,具体过程往下看:
1.首先安装fastlane前的准备工作:
确保你的Mac环境有ruby环境,执行ruby-v,查看当前ruby的版本,如果还没有ruby环境,请自行百度安装,如果你的项目已经使用cocoapod管理第三方包,那么你的mac内就已经安装了ruby环境了,其次我们还需要安装xcode的命令行工具,当然这里不需要自己安装,xcode已经帮我们完成了.
2.正式安装fastlane:
执行sudo gem install fastlane
执行fastlane init
2是打测试包
3是Appstore上架
4是自定义,
这里我是打包企业版本,选择4,当然所有自定义的包括打企业包、上appstore等都可以自定义脚本来完成.
初始化完成后项目目录下会有fastlane的文件目录:
Appfile,用于存放AppID和开发者的AppleID,这个文件在我的实践中并没有用到.
Fastfile,用于管理创建的lane,lane则可以调用各个action(即fastlane的工具链)这个文件是核心文件.
Snapfile,用于指定需要进行屏幕截图的设备类型(根据选项生成,可自己创建文件用于配置)
Deliverfile,用于配置发布至appStore的文件(根据选项生成,可自己创建文件用于配置),如果你是选择打包后自动上传到appstore,那么这个文件是必要的,当然也是执行相关命令生成的,后续会提到.
Snapfile和Deliverfile是不会自动生成的,还需要执行其他命令,这个下面有介绍.
这里我只选择了自定义,所以只有前两个文件. 接下来在Fastfile来创建命令,这里构建APP需要使用build_app的action,具体的action介绍自己去看(docs.fastlane.tools/actions),当前你可以执行,fastlane action xxx,xxx代表action的名称,比如查看build_app:
desc "企业版本"
lane :enterpriseProduction do #自己对当前的lane命名
build_app( #build_app是打包的action,里面详细的命令请查看https://docs.fastlane.tools/actions/build_app
workspace:"xxx.xcworkspace",#装有coccoapod的,找到项目的workspace
scheme:"xxx", #项目命名
export_method:"enterprise",#导出方式
output_directory:"./fastlane/package/enterprise",#打包后ipa的存放路径
output_name:"123"#输出ipa,可以完全不设置
configuration:"Release", #环境
clean:true #打包前是否需要执行clean
#export_options: { #其他选项,这里手动配置打包的签名证书, 笔者目前都是自动化打包,因此手动打包这一部分并没有去验证,各位有需要的可以自己捣鼓捣鼓
#provisioningProfiles: {
# "com.example.bundleid" => "Provisioning Profile Name",
#3 "com.example.bundleid2" => "Provisioning Profile Name 2"
# }
#}
)
#自动上传fir
firim(firim_api_token:"fir的token")
#自动上传蒲公英
pgyer(api_key:"apiKey",user_key:"userkey")
# add actions here: https://docs.fastlane.tools/actions
end
复制代码
上面我的执行脚本,这里有个注意点,如果你想写注释请用#开头,笔者之前用//结果各种语法错误,尴尬.笔者一直用的自动化打包方式,fastlane也是默认使用自动化打包,如果你需要手动打包,那么需要配置签名文件等.
编写完成后可以执行打包命令了:
fastlane enterpriseProduction(lane的命名)
执行过程中会build你的整个项目,这中间需要一些时间,打包完成后还需要上传到你们指定的地方去,也是需要时间的,耐心等候.最终:
上传到fir或者蒲公英这里笔者暂时是屏蔽掉了.各位需要上传到fir或者蒲公英,那么接着往下看:
1.上传到firim
首先需要安装firim的工具,cd到你的项目目录下,这里的fir以及蒲公英的工具都必须在项目目录下安装:
执行fastlane add_plugin firim
这个安装过程还顺带需要安装gem,还需要输入几次密码,照着做就行
安装完成后在fastlane 文件内加上firim(firim_api_token:"fir的token"),如上图,这时你需要获取到你的firim账号上的token,并填写进去:
2.上传到蒲公英
步骤和fir一致,整个过程中执行的命令不一样而已,你也可以参考蒲公英的文档https://www.pgyer.com/doc/view/fastlane:
首先去项目目录下执行:
fastlane add_plugin pgyer
成功后在fastlane文件内新增:
pgyer(api_key:"apiKey",user_key:"userkey"),其中key去蒲公英上取.
最后执行打包命令,成功后去蒲公英上查看.
以上是企业版本的打包及上传到不同平台的全实践.
接下来讲解的是打包上传到itunes上去:
Fastlane的配置如下:
lane:Appstore do
build_app(
workspace:"xxx.xcworkspace",
scheme:"xxx",
export_method:"app-store",#这里填appstor
output_directory:"./fastlane/package/appstore",#打包后的路径,自己随意
configuration:"Release",
clean:true
)
upload_to_app_store( #上传appstore的配置
app_identifier:"com.creator.pro.eamp",#bundle Id
username:"yaqian.tang@chinacreator.com",#apple Id
ipa:"./fastlane/package/appstore/xxx.ipa", #和output_directory的路径对应
skip_screenshots:true,
skip_app_version_update:false,
submit_for_review:false,
reject_if_possible:true,
skip_metadata:true
)
# add actions here: https://docs.fastlane.tools/actions
end
复制代码
执行打包命令后,会一步一步要你填写 apple ID及密码,如实填写就行,当然还需要先执行deliver init ,来初始化Deliverfile、screenshots和metadata,这包含了app的截图、icon等一些基础数据,如果你的APP以及在itunes上初始化完成了,那么执行deliver init,就可以把app的相关信息都下载下来,如下,自己去对应的文件夹下看详细内容:
你选择自定义的时候是不会自动给你生成的,你选择3上传到appstore,则是可以自动生成,当然你上架app的第一个版本的信息初始化可以选择完全由fastlane来构建,笔者这里暂时不去探究fastlane中app在itunes上的初始化过程,我个人的建议是自己去itunes上生成app的第一个版本,后续版本的迭代使用fastlane,那样就只需要关心ipa包的上传.
终于写完了,倒腾了一天,整套下来确实是节省了许多打包的时间,心情也好了,开心,学会用好工具也是必修课.