Передача номера сборки в xcargs в Fastlane/Gym

У меня есть приложение с некоторыми расширениями приложения. Чтобы сохранить расширения приложения и основное приложение, использующие одну и ту же версию и номер сборки, я настроил пользовательскую переменную, такую ​​как "MY_BUILD_NUMBER" и "MY_VERSION". В моем приложении и файле расширений Info.plist я просто загружаю эти переменные через ${MY_BUILD_NUMBER} а также ${MY_VERSION},

Этот процесс отлично подходит для синхронизации моих версий и сборок. Сейчас я пытаюсь выяснить, смогу ли я передать номер сборки от Дженкинса в фастлэйн через спортзал и обновить свои xcargs. Тем не менее, я не смог сделать это должным образом с необходимыми цитатами.

Примеры показывают, что мне нужно установить это так:

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

Но когда я пытаюсь передать это как опцию, я могу передать номер сборки "123". Но я борюсь за то, как интерполировать в строку, которая мне нужна в xcargs "my_build_number='123'",

Кто-нибудь успешно сделал что-то подобное, что может дать некоторое представление? Нужно ли как-нибудь избежать кавычек?

1 ответ

Мы устанавливаем версию пакета для приложения и расширений одновременно в 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
)

Я могу передать переменную как 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}'")
Другие вопросы по тегам