繁体   English   中英

在 Fastlane/Gym 中将内部版本号传递给 xcargs

[英]Passing a Build Number to xcargs in Fastlane/Gym

我有一个带有一些应用扩展的应用。 为了让应用程序扩展和主应用程序使用相同的版本和内部版本号,我配置了一个用户定义的变量,例如“MY_BUILD_NUMBER”和“MY_VERSION”。 在我的应用程序和我的扩展 Info.plist 文件中,我只是通过${MY_BUILD_NUMBER}${MY_VERSION}加载这些变量。

这个过程非常适合保持我的版本和构建同步。 我现在正在尝试研究是否可以通过健身房将 Jenkins 的内部版本号传递到 fastlane 并更新我的 xcargs。 但是,我一直未能使用所需的引号使这项工作正常进行。

这些示例表明我需要像这样设置它:

gym(xcargs: "my_build_number='123'")

但是当我尝试将其作为选项传递时,我可以传递内部版本号“123”。 但是我正在努力解决如何插入到 xcargs "my_build_number='123'"中我需要的字符串中。

有没有人成功做过这样的事情可以提供一些见解? 我需要以某种方式转义引号吗?

我们在gym之前在fastlane同时设置应用程序和扩展的捆绑版本:

set_info_plist_value(
  key: 'CFBundleVersion',
  value: build_number,
  path: info_plist_file
)

version_string = get_info_plist_value(
  key: 'CFBundleShortVersionString',
  path: info_plist_file
)

update_info_plist(
  xcodeproj: project_filepath,
  plist_path: notification_service_info_plist_relpath,
  block: lambda do |plist|
    plist['CFBundleVersion'] = build_number
    plist['CFBundleShortVersionString'] = version_string
  end
)

我可以使用以下语法将变量作为 xcarg 传递:

变量 -> @build_number

xcargs: "BUILD_VERSION='#{@build_number}'"

~或~

变量 -> ENV["BUILD_NUMBER"]

xcargs: "BUILD_VERSION='#{ENV["BUILD_NUMBER"]}'"

完整示例:

@build_number = latest_testflight_build_number(app_identifier: @AppBundleID) + 1
increment_build_number(build_number: @build_number)
build_app(scheme: "Release", export_method: "app-store", xcargs: "BUILD_VERSION='#{@build_number}'")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM