Fastlane的優(yōu)點(diǎn)
1、可以實(shí)現(xiàn)一鍵打包矩动。當(dāng)與fir有巧、蒲公英、git等平臺(tái)打通時(shí)悲没,fastlane就可以簡(jiǎn)化很多操作篮迎,比如直接測(cè)試分發(fā),提升工作效率示姿。
2甜橱、fastlane提供好的擴(kuò)展性
準(zhǔn)備工作
1、安裝xcode命令行工具栈戳。
xcode-select --install
如果沒(méi)有安裝岂傲,會(huì)彈出對(duì)話框,點(diǎn)擊安裝子檀。
如果提示
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
表示已經(jīng)安裝
2镊掖、安裝Fastlane乃戈。
sudo gem install fastlane -NV
安裝完了執(zhí)行fastlane --version
,確認(rèn)下是否安裝完成和當(dāng)前使用的版本號(hào)亩进。
3症虑、切換到工程目錄初始化。
cd到你的項(xiàng)目目錄執(zhí)行
fastlane init
初始化的過(guò)程中會(huì)出現(xiàn)下面的選項(xiàng):
第一個(gè)選項(xiàng)的意思是:自動(dòng)截屏归薛。這個(gè)功能能幫我們自動(dòng)截取APP中的截圖侦讨,并添加手機(jī)邊框(如果需要的話)
第二個(gè)選項(xiàng)的意思是:自動(dòng)發(fā)布beta版本用于TestFlight
第二個(gè)選項(xiàng)的意思是:自動(dòng)發(fā)布到AppStore
第二個(gè)選項(xiàng)的意思是:手動(dòng)設(shè)置
我在這里選的是第四個(gè)(大家可根據(jù)自己需要選擇)
成功之后,會(huì)在我們的工程目錄會(huì)生成fastlane文件夾和Gymfile
腳本編寫
1苟翻、fastlane目錄。
- Appfile 這里面是app賬號(hào)和項(xiàng)目的bundle_id 的一些配置項(xiàng)
-
Fastfile 這主要是 腳本編譯骗污、打包和上傳等
如果選擇了其他項(xiàng)初始化崇猫,還會(huì)有: -
metadata 主要是App Store Connect 中的配置項(xiàng),宣傳文本需忿、app名稱诅炉、關(guān)鍵字、隱私網(wǎng)址屋厘、app的logo
review_information 文件主要是 App 審核信息 的配置涕烧、賬號(hào)癌佩、備注愉烙、聯(lián)系方式
trade_representative_contact_information 文件主要是 商務(wù)代表聯(lián)系信息 的配置 - screenshots 這個(gè)文件主要是各個(gè)尺寸屏幕的截圖
- Deliverfile 中為發(fā)布的配置信息,一般情況用不到浅役。
2溢谤、編寫lane腳本瞻凤。
gym(別名:build_app或者build_ios_app)
- configuration:指定打包方式,有Debug和Release世杀,默認(rèn)是Release
- scheme:指定工程的scheme
- clean:在構(gòu)建前是否要clean阀参,默認(rèn)是false
- output_directory:ipa文件應(yīng)該存儲(chǔ)的目錄地址
- output_name:生成ipa文件的名字
- silent: 在構(gòu)建時(shí)隱藏終端不必要輸出的信息,默認(rèn)是false
- export_method:用于導(dǎo)出archive的方法瞻坝。有效值是:appstore, ad-hoc, package, enterprise, development, developer-id
- export_options:這里指定Xcode API的外部配置文件地址蛛壳,或者配置hash
如果有cocoapods,需要在Gemfile 中添加 gem "cocoapods"
例如所刀,手動(dòng)打包lane:
platform :ios do
#當(dāng)前任務(wù)的描述
desc "Description of what the lane does"
#任務(wù)名稱
lane :dev do
# add actions here: https://docs.fastlane.tools/actions
# 使用了cocoapods
cocoapods
build_ios_app(
silent: true,
clean: true,
scheme:"項(xiàng)目名稱"
export_method:"development",
output_directory:"./build/")
end
end
platform :ios do
#當(dāng)前任務(wù)的描述
desc "Description of what the lane does"
#任務(wù)名稱
lane :dev do
# add actions here: https://docs.fastlane.tools/actions
# 使用了cocoapods
cocoapods
build_ios_app(scheme:"項(xiàng)目名稱",
export_options: {
provisioningProfiles: {
"com.example.bundleid" => "Provisioning Profile Nam"
}
})
end
end
打包命令:
fastlane lane的名字
自動(dòng)上傳至Fir.im
執(zhí)行如下命令安裝fir插件:
fastlane add_plugin firim
gem install fir-cli
firim(firim_api_token:"token值")
自動(dòng)上傳至蒲公英
執(zhí)行如下命令安裝蒲公英插件:
fastlane add_plugin pgyer
- api_key:蒲公英 app api_key
- user_key:蒲公英 app user_key
pgyer(
api_key: "[******]",
user_key: "[******]" )
上傳釘釘消息通知
- api_key:app 下載鏈接
- app_icon:app 圖標(biāo)鏈接
- dingTalk_url:釘釘機(jī)器人 webhook衙荐,webhook值獲得見(jiàn)鏈接
釘釘自定義機(jī)器人