Fastlane打包腳本

背景

公司配置下自動(dòng)打包的環(huán)境

自動(dòng)打包

主要使用工具:Fastlane:安裝教程可查看官網(wǎng)
以下是Fastfile文件的內(nèi)容:
主要是寫了3個(gè)方法:
1.打出release包并上傳到testflight(如果上傳有問(wèn)題,
可以查看這篇upload_testflight_error
2.打出dev包并上傳到蒲公英(https://www.pgyer.com/
3.刪除導(dǎo)出ipa包的文件夾

下面注釋都有標(biāo)注,可自行查看。
如果有同學(xué)直接復(fù)制,
記得改下export_path、yourProjectName、yourAppleID、team_id和蒲公英的api參數(shù)等等。

default_platform(:ios)

platform :ios do

  desc "release包+不上傳"
  lane :releaseWithoutUpload do
    packageRelease(upload:false)
  end

  desc "release包+TestFlight"
  lane :releaseWithUpload do
    packageRelease(upload:true)
  end

  desc "release+是否上傳TestFlight"
  lane :packageRelease do |options|
    increment_build_number(xcodeproj: "yourProjectName.xcodeproj")
    # 使用當(dāng)前日期來(lái)生成一個(gè)唯一的時(shí)間戳
    timestamp = Time.now.strftime("%Y%m%d%H%M%S")

    # 構(gòu)建導(dǎo)出的 .ipa 文件名,添加時(shí)間戳作為后綴
    ipa_name = "yourProjectName_release_#{timestamp}.ipa"

    # 定義導(dǎo)出路徑為一個(gè)變量
    export_path = "/Users/Zheng/Desktop/ipa"

    # 使用 gym 構(gòu)建應(yīng)用,并導(dǎo)出 .ipa 文件到指定路徑
    gym(
      workspace: "yourProjectName.xcworkspace",
      scheme: "yourProjectName",
      output_directory: export_path,  # 使用導(dǎo)出路徑變量
      output_name: ipa_name
    )

    upload = options[:upload]
    if upload
      # 使用 deliver 上傳應(yīng)用到 TestFlight
      puts "上傳到TestFlight"
      deliver(
        username: "yourAppleID",
        app_identifier: "yourProjectId",
        ipa: "#{export_path}/#{ipa_name}",
        team_id: "your_team_id"
      )
    else
      puts "不上傳到TestFlight"
    end

    system("open #{export_path}")  # macOS 上
    UI.message("release打包任務(wù)完成")
  end

  desc "dev包+不上傳"
  lane :devWithoutUpload do
      packageDev(upload:false)
  end

  desc "dev包+蒲公英"
  lane :devWithUpload do
      packageDev(upload:true)
  end

  desc "dev包+是否上傳"
  lane :packageDev do |options|
    increment_build_number(xcodeproj: "yourProjectName.xcodeproj")
    # 使用當(dāng)前日期來(lái)生成一個(gè)唯一的時(shí)間戳
    timestamp = Time.now.strftime("%Y%m%d%H%M%S")

    # 構(gòu)建導(dǎo)出的 .ipa 文件名,添加時(shí)間戳作為后綴
    ipa_name = "yourProjectName_dev_#{timestamp}.ipa"

    # 定義導(dǎo)出路徑為一個(gè)變量
    export_path = "/Users/Zheng/Desktop/ipa"

    gym(
    clean: true,
    output_directory: export_path,  # 使用導(dǎo)出路徑變量

    # 打包的名稱,可任意取
    output_name: ipa_name,
    # 項(xiàng)目的 scheme,自己項(xiàng)目名   .xcworkspace 前面的項(xiàng)目名就是
    workspace:"yourProjectName.xcworkspace",
    scheme: "yourProjectName",      
    # 默認(rèn) Release,Release or Debug     
    configuration: 'Debug', 
    # 是否包含 bitcode  
    include_bitcode: false,  
    # 是否包含 symbols 
    include_symbols: false, 
    # 打包導(dǎo)出方式,包含 app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application   
    export_method: 'development',  
    # 這個(gè)設(shè)置是為了設(shè)置 xcode 自動(dòng)配置證書和配置文件,當(dāng)然也可以手動(dòng)配置,可以參考文檔
    export_xcargs: '-allowProvisioningUpdates')
    
    upload = options[:upload]

    # 使用布爾值執(zhí)行任務(wù)
    if upload
      puts "即將上傳到蒲公英"
      #配置上傳蒲公英賬號(hào)  蒲公英的 api_key和 password (這個(gè)是你設(shè)置密碼下載時(shí)用的密碼)具體可以參考官方文檔https://github.com/PGYER/fastlane-plugin-pgyer
      pgyer(
        api_key:"到蒲公英賬號(hào)查看api信息",
        password:"到蒲公英賬號(hào)查看api信息",
        install_type:"2",//1表示公開下載,2表示設(shè)置安裝密碼
        password:"設(shè)置密碼"
        )
    else
      puts "不上傳到蒲公英"
    end
    UI.message("dev打包任務(wù)完成")
    system("open #{export_path}")  # macOS 上
  end
  desc "清空導(dǎo)出包的文件夾"
  lane :clear_folder do
    # 指定要清空的文件夾路徑
    folder_path = "/Users/Zheng/Desktop/ipa"

    # 使用 FileUtils.rm_rf 方法來(lái)清空文件夾
    FileUtils.rm_rf(folder_path)
  end

end

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

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

  • 前言:App的開發(fā)過(guò)程中,打包測(cè)試也是非常重要的一環(huán),但是頻繁的機(jī)械式操作反而阻塞我們的開發(fā)測(cè)試效率,我們希望通過(guò)...
    coderGMQ111閱讀 2,832評(píng)論 1 1
  • 概述 APP自動(dòng)化打包常見的主流工具有Jenkins、fastlane。Jenkins功能強(qiáng)大,但是需要的配置也比...
    pengxiaochao閱讀 1,581評(píng)論 0 6
  • fastlane運(yùn)行所需要的環(huán)境: OS X 10.9以上 Ruby 2.0 以上 Xcode 擁有一個(gè)開發(fā)者賬號(hào)...
    阿姣_0405閱讀 3,271評(píng)論 0 4
  • 2020年iOS自動(dòng)打包腳本 1.準(zhǔn)備工作 安裝[fastlane](http://docs.fastlane.t...
    fengsh_h閱讀 1,771評(píng)論 1 0
  • Fastlane是一套使用Ruby寫的自動(dòng)化工具集,旨在簡(jiǎn)化Android和iOS的部署過(guò)程,自動(dòng)化你的工作流。它...
    mirrorzyb閱讀 71,074評(píng)論 27 355

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