我有一个带有某些应用程序扩展名的应用程序。为了使应用程序扩展名和主应用程序使用相同的版本和内部版本号,我配置了一个用户定义的变量,例如“ 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'"
中插入需要的字符串。
有人成功完成了这样的事情可以提供一些见识吗?我需要以某种方式转义报价吗?
答案 0 :(得分:2)
我们同时在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
)
答案 1 :(得分:1)
我可以使用以下语法将变量作为xcarg传递:
变量-> @build_number
xcargs:“ BUILD_VERSION ='#{@ build_number}'”
〜OR〜
变量-> 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}'")