iOS Fastlane 自動化打包發(fā)布到App Store,相對比我們測試時打包麻煩了一些,主要由于訪問App Store需要調(diào)用相關(guān)的api進行權(quán)限驗證;
自動打包發(fā)布Beta版到TestFlight
從打包到上傳到TestFlight需要以下幾個命令:
- gym
- app_store_connect_api_key
- upload_to_testflight
- notification 該命令可以及時通知我們當(dāng)前操作狀態(tài);
完整配置如下
# update_fastlane
default_platform(:iOS)
platform :iOS do
#生產(chǎn)環(huán)境打包
lane :hs_release do |options|
desc "Release>>>>>>>App開始打包..."
gym(
clean: true,
output_directory: './fastlane/release',
output_name:"XX.ipa",
scheme: 'LoanManager',
configuration: 'Release',###########
include_bitcode: true,
include_symbols: true,
codesigning_identity:"iPhone Distribution: XXXXial Information Service Co.,Ltd (83XXXXXXX)",
export_options: {
method: 'app-store',
provisioningProfiles: {
"com.xx.xx" => "描述文件名稱"
},
}
)
notification(app_icon:"./fastlane/icon.png",title:"LoanManager",subtitle: "打包成功,已導(dǎo)出安裝包>>>>>>>>", message: "準(zhǔn)備發(fā)布中....")
api_key = app_store_connect_api_key(
key_id: "2CT XXXXX- KM",
issuer_id: "69a6de84-a3e5-XXXXX-c7c11a4d1",
key_filepath: "./fastlane/2CTXXXXTKM.p8",
duration: 1200, # optional (maximum 1200)
in_house: false # optional but may be required if using match/sigh
)
upload_to_testflight(
api_key: api_key,
skip_waiting_for_build_processing: true,
# username: "1xxxx@163.com",
# app_identifier: "com.sxx.xxx",
ipa: "./fastlane/release/XX.ipa",
skip_submission:true
)
notification(app_icon:"icon.png",title:"LoanManager",subtitle: "IPA上傳成功", message: "自動打包完成!")
end
end
主要參數(shù)解釋
lane
: 在Fastlane中每個lane就相當(dāng)于一個任務(wù)耙册,每個任務(wù)都是獨立的,也可以相互調(diào)用毫捣;-
gym
->codesigning_identity
:在鑰匙串中打包證書名详拙;
gym
->clean
:每次會執(zhí)行清空以前操作,重新build培漏;gym
->export_options
設(shè)置打包方法溪厘,及證書相關(guān);upload_to_testflight
->api_key
:上傳到testflight需要的key牌柄,有方法app_store_connect_api_key 生成; 設(shè)置了這個 不能再設(shè)置 username 畸悬, app_identifier兩個參數(shù)了,否則打包時報錯珊佣;upload_to_testflight
->ipa
: 目標(biāo)IPA路徑蹋宦,相對工程的根路徑;
app_store_connect_api_key 訪問App Store秘鑰相關(guān)咒锻,需要在APP主頁申請生成,App Store訪問秘鑰相關(guān)冷冗,需要在APP主頁申請
-
app_store_connect_api_key
->key_id
-
app_store_connect_api_key
->issuer_id
生成的發(fā)布ID -
app_store_connect_api_key
->key_filepath
下載的key_file在本地的路徑;
APP主頁申請秘鑰相關(guān)信息
APP -> 用戶和訪問惑艇,選擇秘鑰
生成結(jié)果只能查看一次蒿辙,注意保留所需數(shù)據(jù)
記錄生成的key,下載秘鑰文件然后放到項目指定目錄下即可滨巴;
運行命令打包
fastlane hs_release
告訴fastlane 執(zhí)行我們的任務(wù)hs_release
思灌, 大約10分鐘后完成,最終結(jié)果如圖恭取,然后就可以在App Store后臺我們上傳的APP了泰偿;相比手動打包,構(gòu)建上傳是不是快了很多蜈垮;