Android自动化打包发布到Fir.im(基于官方教程)
前序
在网上看到一些fastlane的教程大部分都是发布到蒲公英中,个人不是很喜欢蒲公英广告太多之前下载量也少得可怜,于是自己根据官方教程,经历多次失败后整理一份发布fir.im教程,欢迎指正😁
1. 安装快速通道
a. Ruby环境+Bundler(MacOS / Linux / Windows),如果使用macOS,则不建议直接使用系统Ruby,建议直接使用brew直接进行安装
b. MacOS 可以使用
brew install fastlane
2. 安装快速通道
终端CD到项目根目录/AS点击TerMinal并运行
fastlane init
系统会要求您确认您已准备好开始,然后再提供一些信息。快速入门:
- 在询问时提供您的应用程序的软件包名称(例如io.fabric.yourapp)※ 这个步骤不小心按快了也没关系,可以在Appfile中重新定义,或者说这个对于国内不上谷歌商店的来说应该不重要(我是这么理解的)
- 当询问您的json机密文件的路径时,按Enter键
- 当系统询问您是否打算通过快速通道将信息上传到Google Play时,请回答“ n”(我们可以稍后进行设置)
就是这样!fastlane将根据提供的信息自动为您生成配置。
您可以看到新创建的./fastlane
目录,其中包含以下文件:
-
Appfile
它定义了应用程序全局的配置信息 -
Fastfile
它定义了驱动器的行为的“通道” FASTLANE
3. 配置Fir.im(基于Fir的Github教程)
- 在上一步初始化配置fastlane的项目位置中运行
fastlane add_plugin fir_cli
里面已经内置 fir-cli 这个gem, 直接在fastlane 中直接将文件上传到 fir.im
会在Pluginfile文件中多出- 需要在fir网站中进行登录拿到自己的APIToken
- 在Fastfile文件中可以看到有
- 其他类型暂时先不考虑,按例咱们可以编写gofir 的运行方法,注意 运行体要结束要跟随end
lane :gofir do
puts "FastLane start goFir~~~" end
这样一个运行体就写好了,那咱们该如何使用呢
只要在当前项目所在命令行中运行
fastlane gofir
即可
- 运行体写好了,现在咱们开始编写运行内真实内容
# 多渠道环境
gradle(
task: 'assemble', # gradle 任务栈 不需要多解释
# 这个风味指的是多渠道打包才必须需要配置的,
# 否则会找不到具体生成后文件,没有多渠道需求可以不写
flavor: 'xinyixy_shaanxi',
# 编译类型 不需要多解释
build_type: 'Release'
)
# 单渠道环境
gradle(task: 'assemble', build_type: 'Release')
- 是不是会犯愁发布应用时候版本更新说明要如何写?
# 所以咱们可以直接采用最新的git提交记录来充当版本说明
changelog_from_git_commits(commits_count: 1, merge_commit_filtering: "exclude_merges")
- 发布
fir_cli api_token: "xxxxxxxxxxxxxxx", # 之前在fir中拿到的APIToken
# 得到当前编译后生成的apk路径
specify_file_path: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH],
# git最新提交日志说明
changelog: lane_context[SharedValues::FL_CHANGELOG]
OK 大功告成~
- 看一下完整的
fastlane_version "2.68.2"
default_platform :android
platform :android do
lane :gofir do
gradle(
task: 'assemble',
flavor: 'xinyixy_shaanxi',
build_type: 'Release'
)
changelog_from_git_commits(commits_count: 1, merge_commit_filtering: "exclude_merges")
fir_cli api_token: "xxxxxxxx",
specify_file_path: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH],
changelog: lane_context[SharedValues::FL_CHANGELOG]
end
end
4. 结束语
这样发布到fir就完成了,fastlane同时还支持调用脚本 可以调用 sh 这样咱们不写action也可以通过sh实现一些自己想要的功能,例如发布完成后发送邮件给测试人员,告知领导任务完成了~