Как передать имя макроса препроцессора в команду сборки xcode?
Я делаю CI build на лазурных девопах. Я задаюсь вопросом, как передать значение макроса препроцессора, чтобы я мог создавать различные варианты сборки.
AFAIK, если мы можем установить макрос препроцессора в сборке xcode, то мы сможем сделать это и для Azure Devops.
Любой полезный указатель приветствуется
1 ответ
Подход 1. С помощью GCC_PREPROCESSOR_DEFINITIONS
Вы должны использовать GCC_PREPROCESSOR_DEFINITIONS в командной строке xcodebuild.
Вот пример макроса в вашем коде
#ifdef Flavour1
NSLog(@"This is flavour 1");
#endif
и вот как вы передаете макрос через командную строку
xcodebuild -verbose -scheme "YourAppScheme" GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS Flavour1=1'
Подход 2: с помощью отдельной схемы xcode
Имейте схему и соответствующую цель для каждого аромата. так что он может иметь другое имя приложения, номер версии, подписчиков и т. д., если требуется, и вы можете ввести макрос в определение препроцессора настроек сборки в target.
Все, что вам нужно сделать, это просто передать правильную схему в команде xcodebuild, и вы отсортировали
PS:-
Я лично предпочитаю подход 2, потому что его легко настроить, не беспокоясь о параметрах командной строки xcodebuild.
Вы можете создать скрипт ruby, который может настроить проект. Xcodeproj - это мощный инструмент для изменения проектов Xcode.