1.前言
前段時(shí)間應(yīng)測(cè)試要求掰盘,需要重復(fù)測(cè)試App安裝啟動(dòng),為了避免重復(fù)性的工作和節(jié)省時(shí)間赞季,所以就想到了用 Fastlane 自動(dòng)化打包上傳到蒲公英方便測(cè)試安裝愧捕。
2.簡(jiǎn)介
Fastlane 是一套使用Ruby寫(xiě)的自動(dòng)化工具集,用于iOS和Android的自動(dòng)化打包申钩、發(fā)布等工作次绘,可以節(jié)省大量的時(shí)間。
3.安裝
3.1 安裝正確的Ruby版本典蜕,需要2.0及以上版本:
ruby -v
3.2 然后檢查 Xcode 命令行工具是否安裝:
xcode-select --install
報(bào)如下錯(cuò)誤断盛,說(shuō)明已安裝:
3.3 通過(guò)RubyGem安裝 Fastlane 工具集:
sudo gem install fastlane
執(zhí)行命令時(shí),輸入用戶(hù)密碼愉舔,如下圖安裝完成:
4.配置
4.1 打開(kāi)終端钢猛,進(jìn)入你的工程目錄,然后執(zhí)行 fastlane init:
執(zhí)行過(guò)程中轩缤,需要輸入對(duì)應(yīng)的蘋(píng)果開(kāi)發(fā)賬號(hào)命迈。接下來(lái),出現(xiàn)確認(rèn)提示火的,確認(rèn)無(wú)誤輸入y:
4.2 Fastlane 初始化完成后壶愤,工程目錄下會(huì)自動(dòng)生成 fastlane
文件夾,如下所示:
-
metadata
: 目錄:存放 App 元數(shù)據(jù)馏鹤,包括 App 簡(jiǎn)介征椒,Icon,Copyright 等湃累; -
screenshots
: 目錄:顧名思義勃救,存放 App store 中的截圖碍讨; -
Appfile
:用于指定app_identifier
,apple_id
,team_id
; -
Deliverfile
:用于指定跟 App 版本發(fā)布相關(guān)的信息蒙秒,除了apple_identifier
外勃黍,還包括submit_for_review
,automatic_release
等可配置項(xiàng),基本覆蓋 iTunes Connect 里面的所有選項(xiàng) -
Fastfile
:用于編寫(xiě)邏輯腳本晕讲,使用 ruby 語(yǔ)言覆获,例如首先執(zhí)行 cocoapods 更新第三方依賴(lài)庫(kù),然后執(zhí)行 pem 更新相關(guān)證書(shū)瓢省,接著通過(guò) gym 來(lái)編譯并打包 ipa 文件弄息,最后通過(guò) deliver 發(fā)布到 iTunes Connect 中,并提交審核勤婚。具體邏輯按照開(kāi)發(fā)者需求自行設(shè)計(jì)疑枯。
推薦使用Sublime Text工具打開(kāi) Appfile
、Deliverfile
和 Fastfile
三個(gè)配置文件蛔六,首次打開(kāi)是以文本格式顯示的荆永,可設(shè)置文件默認(rèn)格式為Ruby。
進(jìn)入 fastlane
文件国章,執(zhí)行如下命令:
open -a /Applications/Sublime\ Text.app/ Appfile Deliverfile Fastfile
操作步驟:在Sublime Text 工作窗口具钥,點(diǎn)擊右下角Plain Text區(qū)域,出現(xiàn)的下拉菜單中選擇Ruby液兽,之后文件內(nèi)容將以Ruby語(yǔ)法格式打開(kāi)骂删,便于編輯查看。三個(gè)文件需要分別設(shè)置默認(rèn)格式四啰。
4.3 安裝蒲公英的 Fastlane 插件
在終端中宁玫,輸入以下命令,即可安裝蒲公英的 fastlane 插件:
fastlane add_plugin pgyer
執(zhí)行過(guò)程中柑晒,出現(xiàn)確認(rèn)提示欧瘪,確認(rèn)無(wú)誤輸入y,接下來(lái)匙赞,需要輸入兩次用戶(hù)密碼即可棵癣。
稍等幾秒鐘椰弊,如果出現(xiàn)類(lèi)似下面的信息法严,就說(shuō)明安裝成功了:
5.執(zhí)行
5.1 在 Fastlane 配置蒲公英插件
首先肥哎,進(jìn)入工程目錄,并打開(kāi) Fastlane 的配置文件(一般在 fastlane/Fastfile)坐榆,這里我們用 Sublime Text打開(kāi)拴魄。
然后,我們找到我們?cè)谟玫墓ぷ髁鳎╝ction),在 gym 指令后匹中,加入蒲公英插件的配置信息蚀狰。例如:
desc "發(fā)布 測(cè)試版本 到 蒲公英"
lane :beta_pgy do
gym(export_method: "ad-hoc")
pgyer(api_key: "d066f633dc2d970eb230dba7823ff022",
user_key: "4477d913a078c11df32be931523619dc",
update_description: "fastlane自動(dòng)打包上傳測(cè)試 ",
password: "123456",
install_type: "2")
end
注意:
以上的 api_key
和 user_key
,請(qǐng)開(kāi)發(fā)者在自己賬號(hào)下的 應(yīng)用管理 - App概述 - API 中可以找到职员,并替換到以上相應(yīng)的位置。password
為安裝時(shí)跛溉,需要輸入的密碼焊切,install_type
為安裝類(lèi)型。
5.2 打包并自動(dòng)上傳 App 到蒲公英
bundle exec fastlane beta_pgy
執(zhí)行過(guò)程中芳室,如果出現(xiàn)如下錯(cuò)誤专肪,需要在工程目錄下的Gemfile文件中添加如下信息:
gem 'cocoapods'
保存文件后,重新執(zhí)行下面的命令:
bundle exec fastlane beta_pgy
稍等幾十秒堪侯,最后如果出現(xiàn)類(lèi)似下面的信息嚎尤,就說(shuō)明Fastlane打包上傳成功了,可以進(jìn)入蒲公英【我的應(yīng)用】掃碼下載伍宦。打包上傳成功截圖如下:
5.3 配置文件
有時(shí)候我們希望把賬號(hào)信息芽死、更新描述和版本號(hào)等信息單獨(dú)放在一個(gè)配置文件。在這里Fastlane給我們提供了相應(yīng)的解決方案次洼。
我們可以在工程目錄下創(chuàng)建一個(gè)名為 .env
的文件关贵,自定義所需的臨時(shí)變量,然后Fastlane的三個(gè)配置文件(Appfile
卖毁、Deliverfile
和Fastfile
)分別從.env
文件中讀取配置信息揖曾。
關(guān)于ENV用法可參考以下鏈接:
https://docs.fastlane.tools/advanced/#environment-variables
https://github.com/bkeepers/dotenv
.env
文件為影藏文件,可使用如下命令查看:
ls -a
截圖如下:
下面給出的 .env
文件配置可做參考:
.env
:
#APP唯一標(biāo)識(shí)符
APP_IDENTIFIER = "xxx.xxx.TestGitProject"
#發(fā)布版本號(hào)
APP_VERSION_RELEASE = "1.1.0"
#新版本修改記錄
RELEASE_NOTES = "1) 升級(jí)測(cè)試第一行\(zhòng)n2) 升級(jí)測(cè)試第二行"
#蒲公英 更新描述
PGY_UPDATE_DESCRIPTION = "fastlane自動(dòng)打包上傳測(cè)試"
#自動(dòng)提交審核
SUBMIT_FOR_REVIEW = false
#審核通過(guò)后立刻發(fā)布
AUTOMATIC_RELEASE = false
#蘋(píng)果開(kāi)發(fā)者賬號(hào)
APPLE_ID = "xxx@xxx.xxx"
#蘋(píng)果開(kāi)發(fā)者帳號(hào)密碼
FASTLANE_PASSWORD = "xxxxxx"
#套裝ID
TEAM_ID = "94xxxxx02"
#應(yīng)用名稱(chēng)
SCHEME_NAME = "TestGitProject"
#APP元數(shù)據(jù)及截圖存放路徑
METADATA_PATH = "./metadata/TestGitProject"
SCREENSHOTS_PATH = "./screenshots/TestGitProject"
#APP元數(shù)據(jù)及截圖下載時(shí)亥啦,直接覆蓋原有數(shù)據(jù)炭剪,不詢(xún)問(wèn)
DELIVER_FORCE_OVERWRITE = true
Appfile
、Deliverfile
和Fastfile
配置文件修改如下:
Appfile
:
app_identifier ENV['APP_IDENTIFIER'] # The bundle identifier of your app
apple_id ENV['APPLE_ID'] # Your Apple email address
team_id ENV['TEAM_ID'] # Developer Portal Team ID
Deliverfile
:
app_identifier ENV['APP_IDENTIFIER'] # The bundle identifier of your app
username ENV['APPLE_ID'] # your Apple ID user
Fastfile
:
desc "發(fā)布 測(cè)試版本 到 蒲公英"
lane :beta_pgy do
gym(scheme: ENV['SCHEME_NAME'],
export_method: "ad-hoc",
silent: true, # 隱藏沒(méi)有必要的信息
clean: true # 在構(gòu)建前先clean
)
pgyer(api_key: ENV['PGY_API_KEY'],
user_key: ENV['PGY_USER_KEY'],
update_description: ENV['PGY_UPDATE_DESCRIPTION'],
password: "123456",
install_type: "2")
end
配置文件截圖如下:
修改完上述配置文件后翔脱,重新執(zhí)行以下命令:
bundle exec fastlane beta_pgy
6.其他
Fastlane 如何實(shí)現(xiàn)多 Target 自動(dòng)化打包發(fā)布奴拦,以及如何配置 Appfile、Deliverfile 和 Fastfile 等配置文件届吁,發(fā)布和構(gòu)建版本號(hào)自增粱坤,修改更新內(nèi)容,自動(dòng)上傳蘋(píng)果商店和自動(dòng)提交審核瓷产,可參考另一篇文章:Fastlane 實(shí)現(xiàn)多 Target 自動(dòng)化打包發(fā)布
參考鏈接: