xcode 4 не в состоянии инициировать модульные тесты (с ошибкой компоновщика) после того, как я создал новую схему - PullRequest
40 голосов
/ 10 июня 2011

Мои модульные тесты нормально работали в xcode4, пока мне не пришлось создавать новую схему для компиляции пакета для запуска на моем устройстве для тестирования.

Все, что я делал, это создавал новую цель и новую схему, теперь я пытаюсь запустить модульные тесты и получаю следующую ошибку:

Комплект тестов в [...] Tests.octest не может быть загружен, поскольку произошла ошибка ссылки.Вполне вероятно, что dyld не сможет найти инфраструктуру или библиотеку фреймворка, с которым был связан тестовый комплект, возможно, из-за того, что у фреймворка или библиотеки был неверный путь установки во время соединения.

Что я сломал?

Ответы [ 5 ]

47 голосов
/ 15 июля 2011

Как и комментарии @Haoest и @Peter DeWeese, приведенные выше к ответу 1 - у меня была точно такая же проблема, когда я менял название продукта.

Чтобы исправить это в случае, когда вы переименовали продукт,нужно перейти на вкладку Build Settings цели теста и изменить раздел Linking - настройки загрузчика пакетов Debug и Release.Если вы переименовали продукт - каталог и имя приложения могут быть неверными.

Спасибо им обоим за указание на это - но я подумал, что это альтернативное исправление для этой ситуации заслуживает более высокого профиля, чемкомментарии.

28 голосов
/ 20 июня 2011

Я также столкнулся с проблемами с Xcode 4 после добавления цели в существующий проект. В конце концов я выяснил, что Xcode DerivedData для проекта был поврежден. Удалив эти данные, я заставил Xcode перестроить данные, и проект вернулся в нормальное состояние. Я нашел данные в моей домашней папке библиотеки (~ / Library / Developer / Xcode / DerivedData /).

7 голосов
/ 26 сентября 2012

Я перепробовал все (включая другие ответы и ответы, отмеченные здесь http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/),, но, наконец, нашел другое решение:

Установите для параметра «Постобработка развертывания» (в разделе «Развертывание» параметров сборки) значение «Нет» для цели отладки.

До того, как я это сделал, исполняемый файл удалялся, и ссылка не работала с

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_SomeClassUnderTest", referenced from:
      objc-class-ref in SomeTest.o

Независимо от того, что для символов связанного продукта и отладки во время копирования было задано значение NO, это не имело никакого значения - только изменение параметра «Постобработка при развертывании» в конце концов гарантировало, что символы не были удалены.

2 голосов
/ 19 октября 2013

Я обнаружил, что моя проблема заключалась в том, что в моей отладочной сборке было включено «Оптимизация времени соединения».Установка значения no не решила проблему.

2 голосов
/ 25 мая 2013

То же сообщение об ошибке, в моем случае я не связывал один из классов, которые были необходимы во время тестов.

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