Fastlane - 覆盖输出名称

Posted

技术标签:

【中文标题】Fastlane - 覆盖输出名称【英文标题】:Fastlane - Override output name 【发布时间】:2017-08-10 01:25:52 【问题描述】:

我使用fastlane ios lanename 构建,但是为了集成到 Jenkins 中,我想覆盖输出文件名。默认情况下,输出名称在 Fastfile 健身房选项中定义,但我想将版本和内部版本号添加到 Jenkins 中的文件名中。

但是这个命令并没有削减它:

fastlane ios build_dev_stg output_name:"App_Dev_Staging_2.5.1.3452"

尝试此操作后,输出文件名仍然与 Fastfile 中定义的相同。有没有其他方法可以覆盖它?

【问题讨论】:

【参考方案1】:

你做的有点不对,但意图是对的。

您不必将参数传递给您的车道 (build_dev_stg)。

您需要在您的健身房上通过该选项,在您的车道内。

我的前任:

lane :buildDev do |options|
  [.... Set nameSuffix, versionName and so on ...]
  ipaName = "MyApp_#nameSuffix_#versionName_#buildNumber.ipa"
  gym(
    configuration: configuration,
    scheme: scheme,
    export_method: export_method,
    output_name: ipaName
  )
end

希望对你有帮助,有什么问题欢迎提问

【讨论】:

【参考方案2】:

特此共享一个示例通道,该通道根据当前版本和内部版本号生成一个内部版本名称。在我的设置中使用了相同的设置。

# Can be called from other lanes as:
# Build Name
output_build_name = ""
generate_build_name

#Generate the build
build(build_name: output_build_name)

# Lane to create build name using the version
lane :generate_build_name do |options|

# https://github.com/beplus/fastlane-plugin-versioning_ios
# Get version and build number install above plugin
version = get_version_number(target: target)
build_number = get_build_number(xcodeproj: project)
puts "VERSION : #version"

current_date = Time.new.strftime('%Y.%m.%d')
build_name = "-Ver-"+ version + "-B-" + build_number + "-" +current_date
output_build_name = app_name + "-" + build_name

# Build name
puts "#app_name BUILD NAME : #output_build_name" 
// BUILD NAME : AppName-Ver-1.0-B-31-2019.09.16
end

lane :build do |options|
build_app(
  workspace: "MyApp.xcworkspace",
  configuration: "Debug",
  scheme: "MyApp",
  silent: true,
  clean: true,
  output_name: options[:build_name] + ".ipa"
)

【讨论】:

以上是关于Fastlane - 覆盖输出名称的主要内容,如果未能解决你的问题,请参考以下文章

Fastlane 以错误结束 - 匹配 - 没有错误消息

Fastlane 从标识符中检索配置文件路径

Fastlane 车道上传应用程序到 testflight

从 fastlane 参数中获取参数

在当前目录中找不到 fastlane

Fastlane - 更新 5 个现有屏幕截图中的 2 个屏幕截图