Android自動化打包發(fā)布到Fir.im(基于官方教程)
前序
在網上看到一些fastlane的教程大部分都是發(fā)布到蒲公英中,個人不是很喜歡蒲公英廣告太多之前下載量也少得可憐,于是自己根據官方教程,經歷多次失敗后整理一份發(fā)布fir.im教程,歡迎指正??
1. 安裝快速通道
a. Ruby環(huán)境+Bundler(MacOS / Linux / Windows),如果使用macOS,則不建議直接使用系統Ruby,建議直接使用brew直接進行安裝
b. MacOS 可以使用
brew install fastlane
2. 安裝快速通道
終端CD到項目根目錄/AS點擊TerMinal并運行
fastlane init
系統會要求您確認您已準備好開始,然后再提供一些信息??焖偃腴T:
- 在詢問時提供您的應用程序的軟件包名稱(例如io.fabric.yourapp)※ 這個步驟不小心按快了也沒關系,可以在Appfile中重新定義,或者說這個對于國內不上谷歌商店的來說應該不重要(我是這么理解的)
- 當詢問您的json機密文件的路徑時,按Enter鍵
- 當系統詢問您是否打算通過快速通道將信息上傳到Google Play時,請回答“ n”(我們可以稍后進行設置)
就是這樣!fastlane將根據提供的信息自動為您生成配置。
您可以看到新創(chuàng)建的./fastlane目錄,其中包含以下文件:
-
Appfile它定義了應用程序全局的配置信息 -
Fastfile它定義了驅動器的行為的“通道” FASTLANE

image.png
3. 配置Fir.im(基于Fir的Github教程)
- 在上一步初始化配置fastlane的項目位置中運行
fastlane add_plugin fir_cli
里面已經內置 fir-cli 這個gem, 直接在fastlane 中直接將文件上傳到 fir.im
會在Pluginfile文件中多出
image.png
- 需要在fir網站中進行登錄拿到自己的APITokenimage.png
- 在Fastfile文件中可以看到有

image.png
- 其他類型暫時先不考慮,按例咱們可以編寫gofir 的運行方法,注意 運行體要結束要跟隨end
lane :gofir do
puts "FastLane start goFir~~~" end
這樣一個運行體就寫好了,那咱們該如何使用呢
只要在當前項目所在命令行中運行
fastlane gofir
即可
- 運行體寫好了,現在咱們開始編寫運行內真實內容
# 多渠道環(huán)境
gradle(
task: 'assemble', # gradle 任務棧 不需要多解釋
# 這個風味指的是多渠道打包才必須需要配置的,
# 否則會找不到具體生成后文件,沒有多渠道需求可以不寫
flavor: 'xinyixy_shaanxi',
# 編譯類型 不需要多解釋
build_type: 'Release'
)
# 單渠道環(huán)境
gradle(task: 'assemble', build_type: 'Release')
- 是不是會犯愁發(fā)布應用時候版本更新說明要如何寫?
# 所以咱們可以直接采用最新的git提交記錄來充當版本說明
changelog_from_git_commits(commits_count: 1, merge_commit_filtering: "exclude_merges")
- 發(fā)布
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. 結束語
這樣發(fā)布到fir就完成了,fastlane同時還支持調用腳本 可以調用 sh 這樣咱們不寫action也可以通過sh實現一些自己想要的功能,例如發(fā)布完成后發(fā)送郵件給測試人員,告知領導任務完成了~
