我们正在使用 fastlane 和 jenkins 来构建 iOS 应用程序。
我们已经配置了 fastlane 来构建应用程序,但问题是我们找不到一个解决方案来使用相同的配置来构建 ad-hoc 和 app-store 应用程序。
在 /fastlane 文件夹下,我们有 gymfile 和 fastfile 这两个文件,并具有以下配置:
Gymfile:
在Jenniks中,我们有一步骤需要运行以下内容:
在 /fastlane 文件夹下,我们有 gymfile 和 fastfile 这两个文件,并具有以下配置:
Gymfile:
scheme("XXXApp")
workspace("XXXX")
output_directory("./fastlane/Builds")
export_method("ad-hoc")
include_symbols(true)
include_bitcode(false)
xcconfig("......XXXX")
sdk("iphoneos")
Fastfile:用于测试应用程序(我们希望使用ad-hoc进行构建)
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}
如果我们想要测试应用程序,可以使用候选_prod进行测试
问题是:我们可以做哪些更改,以便根据我们希望生成的应用程序(add-hoc或app-store)具有不同导出方法的车道,并且如何为每个构建(测试和prod)指定预配配置文件,以确保我们使用其预配配置文件构建应用程序?