Подтвердить что ты не робот

Xcodebuild - как определить макрос препроцессора?

Как определить макрос препроцессора при использовании xcodebuild?

Мне нужно создать свое приложение, используя множество различных конфигураций, и я хотел бы сделать это, используя оболочку script, которая запускает xcodebuild несколько раз с разными макросами препроцессора.

4b9b3361

Ответ 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[@]}")"