Обновление целевых свойств iOS из командной строки

Стремясь автоматизировать процесс создания приложений для iOS, я пытаюсь изменить настройки цели сборки автоматически вне XCode. В частности, я хотел бы установить файл Info.plist для цели, используя команду или какой-либо другой программный подход. По сути, я хотел бы сделать следующее, но без графического интерфейса XCode:

введите здесь описание изображения

Что я пробовал:

  • Используя xcodeproj. Я использовал этот подход для создания цели с помощью скрипта Ruby, но я не видел простого способа установить файл plist. Если это возможно с xcodeproj, это было бы идеальным решением, поскольку я уже использую его для создания цели.
  • Использование xcodebuild, например, в этом ответе. Мне не повезло с этим методом, и я все равно не думаю, что изменения целевых переменных являются постоянными.

Я открыт для любых способов достижения этого, если они могут быть выполнены в коде или сценарии.


person Adam Jakiela    schedule 09.03.2016    source источник
comment
вам следует заглянуть в полосу обгона. Это набор инструментов, которые помогут практически каждому процессу магазина приложений, который вы только можете себе представить.   -  person arc4randall    schedule 10.03.2016
comment
На самом деле я использую Fastlane в других областях своего развертывания. К сожалению, в Fastlane не так много инструментов для создания и изменения целей — по крайней мере, насколько мне известно.   -  person Adam Jakiela    schedule 10.03.2016
comment
Как насчет чего-то подобного? developer.apple.com/library/ios/qa/qa1827/_index. html   -  person arc4randall    schedule 10.03.2016
comment
Похоже, он изменяет свойства существующего файла plist, но я не вижу, где он устанавливает файл plist для цели.   -  person Adam Jakiela    schedule 10.03.2016


Ответы (1)


Предоставив xcodeproj второй шанс, я смог изменить настройки сборки цели. После создания новой цели app_target параметр сборки для цели можно установить следующим образом:

app_target.build_configurations.each do |config|
    config.build_settings['INFOPLIST_FILE'] = iosProjectDir + "/myplist.plist"
end

В итоге проблема была решена, и изменения отражаются в XCode.

person Adam Jakiela    schedule 09.03.2016