У меня есть рабочее пространство XCode с проектом пользовательского интерфейса (UI) и проектом базовой логики (Core). Мне нужны модульные тесты OCUnit в проекте пользовательского интерфейса, поэтому я добавил новую цель для тестирования, как это обычно делается.
Я могу нормально запускать тесты до тех пор, пока не вставлю операторы импорта для классов в основную цель пользовательского интерфейса, которые, в свою очередь, ссылаются на проект Core.
Я получаю сообщение об ошибке: «Файл лексической или препроцессорной ошибки 'xxx.h' не найден». Я не получаю это сообщение, когда я напрямую создаю основную цель пользовательского интерфейса.
Это как если бы основная цель пользовательского интерфейса знала о Core, когда она создается, но когда на нее ссылаются из цели тестирования, кажется, что она ничего не знает о Core.
Я предпринял шаг, добавив ссылку на основной проект, используя «Связать двоичные файлы с библиотеками». Элемент в списке остается красным. Ключ? Возможно, но красная ссылка в списке ссылок не мешает целевому пользовательскому интерфейсу создавать и использовать базовые классы. Я также сделал основную цель зависимостью от тестовой цели.