Xcodebuild - как определить макрос препроцессора?
Как определить макрос препроцессора при использовании xcodebuild?
Мне нужно создать свое приложение, используя множество различных конфигураций, и я хотел бы сделать это, используя оболочку script, которая запускает xcodebuild несколько раз с разными макросами препроцессора.
Ответы
Ответ 1
Cmd + я в проекте, чтобы открыть диалоговое окно Info. Затем на вкладке "Создать" найдите параметр "Макросы препроцессора". Добавьте туда макросы.
... Где вы можете найти имя параметра GCC_PREPROCESSOR_DEFINITIONS
, поэтому вы можете добавить
GCC_PREPROCESSOR_DEFINITIONS="foo=bar"
аргументам xcodebuild.
Ответ 2
Вы передаете GCC_PREPROCESSOR_DEFINITIONS
в командной строке xcodebuild
.
Помните, что аргумент будет подвергнут переоценке для разделения файлов на оболочку и обработки цитат, поэтому вам нужно быть осторожным, особенно если ваши значения макросов не просто простые 1
(например, литералы NSString).
Также важно расширить GCC_PREPROCESSOR_DEFINITIONS
внутри установленного вами значения (одно кавычки, поэтому ваш script не расширяет его, но оболочка сборки расширяет его), в противном случае вы потеряете настройки проекта для это свойство.
Следующий код помещает ваши определения в хороший массив bash, а затем расширяет массив в командной строке xcodebuild
таким образом, что материал оболочки получает красивое экранирование:
defines=( TESTING=1 '[email protected]"http://192.168.0.101:8080"' )
xcodebuild -verbose -scheme "MyAppScheme" \
GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS '"$(printf '%q ' "${defines[@]}")"