Как передать имя макроса препроцессора в команду сборки 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.

https://github.com/CocoaPods/Xcodeproj

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