簡體   English   中英

如何在 iOS 中為不同的導出方法和配置文件設置 fastlane?

[英]How to setup fastlane in iOS for different export methods and provision profiles?

我們在 iOS 應用程序中使用 fastlane 和 jenkins 來構建它。 我們已經配置了 fastlane 來構建應用程序,但問題是我們找不到使用相同配置來構建臨時和應用商店應用程序的解決方案。

在 /fastlane 文件夾下,我們有具有以下配置的gymfile 和fastfile:

健身檔案:

scheme("XXXApp")
workspace("XXXX")
output_directory("./fastlane/Builds")
export_method("ad-hoc")
include_symbols(true)
include_bitcode(false)
xcconfig("......XXXX")
sdk("iphoneos")

Fastfile:用於測試應用程序(我們要在其中使用臨時構建它)

lane :test do |options|
        get_info_plist_value(path: ENV["INFO_PLIST_PATH"], key: "CFBundleVersion")
        increment_build_number(
            build_number: options[:build_number],
            xcodeproj: "./XXXXX"
        )
        build_test
    end

對於生產應用程序(我們要使用應用商店導出方法):

lane :candidate_prod do |options|
        get_info_plist_value(path: ENV["INFO_PLIST_PATH"], key: "CFBundleVersion")
        increment_build_number(
            build_number: options[:build_number],
            xcodeproj: "./XXXXXX"
        )

        update_project_provisioning(
        xcodeproj: "./XXXXXX",
        profile: "./fastlane/productionprovisionprofile", 
        target_filter: "productionappname", 
        build_configuration: "Release",
        code_signing_identity: "XXXX" 
        )

        build_prod 

而且我們在 fastfile 中有這個私人通道(這是用於生產的,但我們有另一個用於測試應用程序):

private_lane :build_prod do 
        build_ios_app(
            workspace: "XXXXXX",
            #configuration: configuration,  
            scheme: "productionappname",
            silent: false,
            codesigning_identity: "XXXXX",
            include_bitcode: false,
        )
        puts "$IPA_OUTPUT_PATH::\"#{lane_context[SharedValues::IPA_OUTPUT_PATH]}\""
    end 

在 jenniks 中,我們有一個步驟來運行它:

fastlane candidate_prod build_number:${BUILD_NUMBER}

或者 test 而不是Candidate_prod,以防我們想要測試應用程序

問題是:為了根據我們要生成的應用程序(附加或應用程序商店)以及如何為每個構建(測試和生產)指定配置文件,我們可以進行哪些更改以具有具有不同導出方法的通道) 所以我們確保我們使用它的配置文件構建應用程序?

有幾種選擇 - 我的猜測是,無論如何,您對不同的應用程序有超過 1 個捆綁標識符......

  1. 您可以設置一個新目標,然后為該目標創建具有不同方案的相同通道(或構建一個函數並將正確的方案作為參數發送)。 您還必須創建不同的捆綁包 ID。
  2. 如果您不想創建不同的目標,並且您在項目上使用自動簽名,則必須將其更改為手動並在那里指定配置文件。 確保具有不同的內部版本號/版本,否則可能會發生沖突

像這樣的東西

產品

    build_app(
  workspace: "XXXX.xcworkspace",
  scheme: "XXXXX",
  ......
  export_options: {
    method: "app-store",
    signingStyle: 'manual',
    provisioningProfiles: {
      "bundle id": "Prod profile full name",
    }
  })

特別指定

    build_app(
  workspace: "XXXX.xcworkspace",
  scheme: "XXXXX",
  ......
  export_options: {
    method: "ad-hoc",
    signingStyle: 'manual',
    provisioningProfiles: {
      "bundle id": "Ad-hoc full name",
    }
  })

不確定這些方法的命名是否正確 -有關更多詳細信息,請參閱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM