У меня есть разделы в моем коде (например, в AppDelegate.m), которые не должны компилироваться для Unit Tests, например
#ifndef CONFIGURATION_TESTS
// Code that should not be compiled in the Unit Tests
#endif
Цели настраиваются Xcode, когда вы выбираете 'add Unit Tests' при создании нового проекта. В файле проекта я добавил флаг CONFIGURATION_TESTS для макросов препроцессора для встроенного объекта MyAppTests, но не для MyApp Target.
Это был предложенный способ во многих сообщениях, которые я нашел.
Но это не сработает, потому что (я думаю) целевая точка MyAppTests имеет целевое назначение MyApp в качестве зависимости, и поскольку AppDelegate.m добавляется в целевой объект MyApp, он компилируется с настройками сборки MyApp и, следовательно, CONFIGURATION_TESTS не определен.
В файлах тестового теста макрос определен и работает как ожидалось (потому что тестовые файлы создаются только с помощью цели MyAppTests?)
Кто-нибудь знает, как это сделать, я думал, что это будет общей проблемой...