最近手头项目有点多,经常打包发布很繁琐,挑选出一种能提高工作效率的方式。
目前大家常用几种打包方式
1.Xocde基础打包且上传app strore,这种不依靠其他插件只要按照说明一步一步next就可以完成操作,这个不必多说;
2.application loader:先用Xcode打包出Ipa文件在用此工具上传,一般公司运维都是使用这种方式,就是开发和发布分离,方便管理;
3.altool:苹果出的一种自动打包上传app strore的插件,操作简单方便两行命令就可以完成操作,但是确定也很明显我们不能设置参数且只能上传到app strore,局限性很大导致目前使用的人不多;
4.使用但三方集成插件或者脚本语言打包:例如Fastlane、Jenkins以及shell脚本和python脚本,这件我都进行了简单的比较,前两种是集成工具使用起来前期工作量大但是设置好后解读清晰且方便,分组action更是让我们一劳永逸,脚本语言的话想必大家都知道,就是轻巧快捷,但是脚本是直接加入到程序不像集成工具是分离的且配置起来也没有那么清晰,我是认为工程里最好不要掺杂这些,当然这几种方式各有千秋大家可以都试试,选择最适合自己的打包方式。
下面简单说一下Fastlane
Fastlane GitHub地址:Fastlane.github地址
详细介绍:文档地址
Fastlane 是一款为 iOS 和 Android 开发者提供的自动化构建工具,它可以帮助开发者将 App 打包、签名、测试、发布、信息整理、提交 App Store 等工作完整的连接起来,实现完全自动化的工作流,如果使用得当,可以显著的提高开发者的开发效率。
前置条件
-
开发者使用的是 mac 或 linux 系统
-
已经安装好 ruby、rubygems、bundler
-
已经安装了 Fastlane。如果没有安装
-
开发者了解基本的 App 开发流程、终端的使用方法
安装方式
确保Xcode Command Line Tools 安装了最新版
终端输入:
xcode-select --install
终端到项目的当前文件夹下
初始化 fastlane
fastlane init
需要输入你的Apple ID 与密码(可以放心添加 ,账号密码都通过加密处理)
fastlane会自动检测当前目录项目的APP name 和App identifier。如果检测的不对,选择n自行输入。
当前目录下会创建一个fastlane的文件
编辑Fastfile
default_platform(:ios)
platform :ios do
desc "发布到蒲公英"
lane :pgy do
gym(
clean:true, # 是否清空以前的编译信息
scheme:"xxx", # 自己项目名称
export_method:"development",# 可选的值有:app-store、ad-hoc、development、enterprise。
configuration: "Debug", # 环境(Debug、Release)
output_directory:"./build", # 打包后的 ipa 文件存放的目录
)
pgyer(
api_key: "4f7c55a076b93de8b36d1f601086ee6a",
user_key: "25bf5e05d4e325c1a9a8c688a0e3aa82",
update_description: "fix something"
)
end
desc "上传新版本到 App Store"
lane :release do
gym(
clean:true,
scheme:"xxx",
export_method:"app-store",# 可选的值有:app-store、ad-hoc、development、enterprise。
export_xcargs: "-allowProvisioningUpdates", # 访问钥匙串
output_directory:"./build",
)
deliver(
submit_for_review: false # 是否提交审核,true表示立马提交审核
)
end
end
进入工程目录,执行命令
fastlane pgy
上传到蒲公英
下面那个是上传到APP Store的Action
这样可以直接设置几个action组,每次只要输入对应的命令就可以了,一劳永逸。