Xcode 8 Изменить конфигурацию через командную строку

Мне нужны две функциональные возможности, которые я не смог найти в поддержке. Первый - изменить имя конфигурации XCode с помощью скрипта bash. Для этого я постарался:

xcodebuild -target "target name" -configuration existingConfig CONFIGURATION=newConfigName

Команда выше выполняется успешно, но не меняет имя конфигурации. Это просто компилирует источник. Это, вероятно, следовало ожидать, хотя, поскольку я использую xcodebuild.

Для изменения имени конфигурации я также посмотрел файлы xcconfig. Например, я бы создал один в XCode с именем projectname-существующие ConfigName.xcconfig, и я бы добавил к нему новое имя конфигурации следующим образом:

CONFIGURATION = NewConfigName

Тем не менее, в приведенном выше примере я боюсь, что я неправильно использую файлы xcconfig. Есть ли хорошая ссылка на это где-нибудь?

Вторая часть функциональности, которую я не смог найти в поддержке, - это добавление новой конфигурации на лету через bash или xcconfig.

В конечном счете, я хотел бы сделать это, используя bash, но я также открыт для других мнений, которые не включают в себя открытие Xcode для этого. Здесь я использую подмодули git, извлекаю их и добавляю динамические конфигурации во время сборки CI, откуда и возникает эта проблема.

Возможно, есть более простой способ сделать это, но я подумал, что сначала задам свой вопрос, чтобы увидеть, нахожусь ли я на правильном пути.

1 ответ

Существует рубиновый камень под названием Xcodeproj который также используется CocoaPods. Это в основном позволяет вам видеть файл проекта как объект, изменять и в конечном итоге сохранять его. Следующий код должен ответить на первую часть вашего вопроса о переименовании:

#!/usr/bin/ruby
require 'xcodeproj'

project_path = '../folder/yourproject.xcodeproj'
project = Xcodeproj::Project.open(project_path)

project.build_configurations.each do |configuration|
    if configuration.name == "existingConfig"
        configuration.name = "NewConfigName"
    end
end

project.save()

Добавление новой конфигурации также должно быть возможно с Xcodeproj, но это то, что я еще не сделал. Документация находится здесь:

https://github.com/CocoaPods/Xcodeproj http://www.rubydoc.info/gems/xcodeproj/Xcodeproj/Project

Другие вопросы по тегам