OCUnit проверяет существующий проект iOS. "ld: файл не найден"
Я следил за этим сообщением в блоге: Добавление модульных тестов к существующему проекту.
Я получаю эту ошибку:
ld: файл не найден: Build/Продукты/Debug-iphoneos/MyApp.app/MyApp команда /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang не удалось с кодом выхода 1
У меня есть целевые свойства теста,
Bundle Loader = $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp
Test Host = $(BUNDLE_LOADER)
(которые оба приравниваются к: build/Debug-iphoneos/MyApp.app/MyApp)
Моя дикая догадка заключается в том, что эти переменные не указывают на то же место, что и компилятор. "build/Debug-iphoneos/..." vs "Build/Products/Debug-iphoneos/..."
Я мог бы ошибаться в этом вопросе, но в любом случае кто-нибудь знает, что вызывает эту ошибку, или как я могу исправить эти переменные среды?
Спасибо за любую помощь,
Сэм
Ответы
Ответ 1
Перейдите в ~/Library/Developer/Xcode/DerivedData, в ваш проект. Оттуда следуйте по пути Bundle Loader. Посмотрите, что на самом деле там.
Теперь посмотрите на свой Info.plist(или на целевые информационные настройки) и найдите "Исполняемый файл" или CFBundleExecutable
. Если он ${EXECUTABLE_NAME}
, проверьте целевую настройку "Название продукта".
Ответ 2
Я столкнулся с той же проблемой - это не имело смысла, поскольку путь, который он использовал к исполняемому файлу, действительно существовал. Внимательно взглянув на команду компиляции, выяснилось, что на пути загрузчика возникло дополнительное пространство.
Ответ 3
Ищите "Пути поиска" внутри настроек сборки. Вероятно, существуют неисследованные пути в разделе "Пути поиска в базе данных" или другие пути, такие как пути поиска библиотек
Ответ 4
Возможно, вы изменили имя приложения после создания своего проекта. Таким образом, название вашего проекта и приложения отличается. В пути используйте имя вашего приложения, как оно появится в хранилище itunes вместо имени вашего проекта.
Ответ 5
У меня была такая же проблема раньше, и я решил это, проверив настройки сборки → базовый SDK моего целевого объекта unit test и убедившись, что он исправлен в зависимости от вашего типа проекта (OSX или iOS).
Ответ 6
В вашем podfile убедитесь, что вы включили свои тесты в качестве цели
target 'YourAppNameTests' do
use_frameworks!
pod 'AFNetworking', '2.6.0'
pod 'TYMProgressBarView'
конец
Это автоматически добавит ссылку Binary with Libraries Framework
![введите описание изображения здесь]()