Кажется, переменные настройки сборки доступны в командной строке, но не в исходных файлах. Для любой такой переменной макрос препроцессора (см. Также "Добавить макрос препроцессора к цели в xcode 6" ) можно определить вручную на основе переменной . Макросу и настройке могут быть присвоены разные имена, но, скорее всего, присвоение им одного и того же имени будет более целесообразным.
В этом случае значение должно начинаться с «@» и быть заключено в экранированные двойные кавычки, поэтому они являются частью макроса и будут включены при его замене. Если любой из них не указан, значение макроса не будет допустимой константой NSString (требуется для использования в качестве значения NSErrorDomain). Макрос должен быть добавлен ко всем конфигурациям (отладка, выпуск и любые пользовательские).
PRODUCT_BUNDLE_IDENTIFIER=@\"$(PRODUCT_BUNDLE_IDENTIFIER)\"
Если идентификатор комплекта продукта также будет использоваться другими способами, макрос может быть определен с необработанным значением (PRODUCT_BUNDLE_IDENTIFIER=$(PRODUCT_BUNDLE_IDENTIFIER)
) с соответствующим синтаксисом, введенным на сайтах использования:
NSErrorDomain BSDomain = @"PRODUCT_BUNDLE_IDENTIFIER";