iOS Fastlane 自動化打包發(fā)布到App Store,相對比我們測試時打包麻煩了一些,主要由于訪問App Store需要調(diào)用相關(guān)的api進(jìn)行權(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)建上傳是不是快了很多;

