Тесты OCUnit для существующего проекта iOS. "ld: файл не найден" - PullRequest
18 голосов
/ 06 марта 2012

Я следил за этой записью в блоге: Добавление модульных тестов в существующий проект.

Я получаю эту ошибку, однако:

ld: файл не найден: Build / Продукты / Debug-iphoneos / MyApp.app / MyApp команда /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang не удалось с кодом выхода 1

У меня есть свойства объекта теста,

Bundle Loader = $ (BUILT_PRODUCTS_DIR) /MyApp.app/MyApp

Тестовый хост = $ (BUNDLE_LOADER)

(что равнозначно: build / Debug-iphoneos / MyApp.app / MyApp)

Мое странное предположение, что эти переменные не указывают на то же место, что и компилятор. "build / Debug-iphoneos / ..." против "Build / Products / Debug-iphoneos /..."

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

Спасибо за любую помощь,

Sam

Ответы [ 6 ]

18 голосов
/ 09 марта 2012

Копайте ~ / Library / Developer / Xcode / DerivedData, вниз в ваш проект.Оттуда следуйте по пути Bundle Loader.Посмотрите, что там на самом деле.

Теперь посмотрите на ваш Info.plist (или на инфо-настройки вашей цели) и найдите «Исполняемый файл» или CFBundleExecutable.Если это ${EXECUTABLE_NAME}, проверьте настройку "Название продукта" вашей цели.

6 голосов
/ 31 августа 2012

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

0 голосов
/ 06 июня 2016

В своем подфайле убедитесь, что вы включили свои тесты в качестве цели

target 'YourAppNameTests' do use_frameworks!pod 'AFNetworking', '2.6.0' pod 'TYMProgressBarView' end

Это автоматически добавит Link Binary with Libraries Framework

enter image description here

0 голосов
/ 31 октября 2014

У меня ранее была такая же проблема, и я решил ее, проверив Настройки сборки -> Базовый SDK моей цели для модульного тестирования и убедившись, что она корректна в зависимости от типа вашего проекта (OSX или iOS).

0 голосов
/ 04 апреля 2014

Существует вероятность того, что вы изменили название приложения после создания вашего проекта.Так что название вашего проекта и приложения разные.В пути используйте имя вашего приложения так, как оно будет отображаться в хранилище itunes вместо имени вашего проекта.

0 голосов
/ 17 декабря 2013

Поиск «путей поиска» в настройках сборки. Вероятно, существуют несуществующие пути в «Каркасных путях поиска» или другие пути, такие как Пути поиска в библиотеке

...