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

Kyl*_*yle 0 shell xcode ios fastlane fastlane-gym

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

这个过程非常适合保持我的版本和构建同步。我现在正在尝试研究是否可以通过gym 将构建号从 Jenkins 传递到 fastlane 并更新我的 xcargs。然而,我一直未能根据所需的报价使这项工作适当地进行。

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

gym(xcargs: "my_build_number='123'")
Run Code Online (Sandbox Code Playgroud)

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

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

Lyn*_*son 6

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

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
)
Run Code Online (Sandbox Code Playgroud)