Неопределенные символы для архитектуры armv7 _OBJC_CLASS_Foo по ссылке из: unit test - PullRequest
2 голосов
/ 11 января 2012

Я собираюсь сходить с ума ... Я не могу определить правильные настройки для моего проекта Xcode + цели тестирования юнитов (логика и приложение).

Я сделал пошаговые инструкции по установке юнит-тестов, включая и Какао с любовью от Apple , и у меня возникла та же проблема.

У меня четыре цели:

  1. MyApp - Нет зависимостей, Работает нормально.

  2. LogicTests - Зависимости: MyApp Тесты работают нормально.

  3. ApplicationTests - Зависимость: MyApp. Bundle Loader установлен на $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp и Test Host на $(BUNDLE_LOADER). Тесты работают, но я получаю ужасные предупреждения:

    Класс Foo реализован в /var/.../MyAppTesting.app/MyApp и /private/var/.../ApplicationTests.octest/ApplicationTests. Один из двух будет использован. Какой из них не определен.

    Я думаю, это потому, что я сделал Foo.m членом цели ApplicationTests. Я проверил образец Apple, и они этого не делают, но если я удалю Foo.m из цели ApplicationTests, то получу:

    Неопределенные символы для архитектуры armv7 "_OBJC_CLASS _ $ _ Foo", на которую ссылается: Objc-class-ref в FooTest.o`

    Как я могу решить это? Если я правильно понимаю, то цель ApplicationTests должна иметь возможность загружать любой класс из MyApp, поскольку он имеет его в качестве зависимости. (

    Помогите пожалуйста.

  4. MyAppTesting - Дубликат MyApp, используемый для точек останова отладки модульного теста и т. Д. (?) Я не могу запустить это, я получаю то же предупреждение, что и выше, и приложение вылетает без запуска с ошибкой сегмента 11. Тест не выполняется. Я думаю, что происхождение этого то же, что и выше ... Надеюсь, я не ошибаюсь.

EDIT: Почему меня предупреждают о Foo, реализованном в MyAppTesting и ApplicationTests, если я тестирую ApplicationTests, который зависит только от MyApp? В настоящее время от MyAppTesting не зависит ни одна цель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...