Да. Определение препроцессора - способ сделать это.
Я предполагаю, что он работает в некоторых файлах, а не в других, потому что некоторые могут не включать ваш файл myAppDelegate.h и, следовательно, не получить определение. Я предлагаю определить цель "Lite Version" и "Pro Version" и установить переменную препроцессора в конфигурации сборки для каждой цели.
После того, как вы создали облегченную цель (просто выберите дублирующийся пункт контекстного меню цели в вашей цели "Pro Version", чтобы создать облегченную цель):
- Перейти в пункт меню Project / Edit Target «Pro Version»
- Перейдите на вкладку сборки и найдите раздел «Предварительная обработка» (внизу).
- добавить BUILD_PRO = 1 в раздел «Макросы предварительной обработки».
Таким образом, вам не нужно изменять какие-либо заголовочные файлы, вам просто нужно создать облегченную или полную цель. Если вам нужно добавить профессиональную функциональность в любом месте вашего продукта, просто используйте:
#ifdef BUILD_PRO
// do some pro stuff
#endif