iOS+Fastlane自動打包發(fā)布到TestFlight

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)建上傳是不是快了很多;

至此發(fā)布到testFlight完成!一行命令統(tǒng)統(tǒng)搞定!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容