Xcode 5.0.2 dyld: библиотека не загружена: @rpath/XCTest.framework/Версии/A/XCTest
У меня проблемы с запуском проекта в Xcode 5.0.2
Я получаю следующую ошибку:
dyld: Library not loaded: @rpath/XCTest.framework/Versions/A/XCTest
Referenced from: /Users/chris/Library/Developer/Xcode/DerivedData/relatio-cwlmozvklaldmictbbjthzuoxnxz/Build/Products/Debug/relatio.app/Contents/MacOS/relatio
Причина: изображение не найдено
(lldb)
Как решить эту проблему?
Ответы
Ответ 1
Похоже, ваша основная цель - это привязка к XCTest.framework, а также к вашей тестовой цели. Он должен быть связан только с основной целью.
1) Перейдите к настройкам проекта
2) Перейти к основной цели приложений → другие флаги компоновщика
3) удалить '-framework XCTest'
4) убедитесь, что поле "другие флажки компоновщика" для вашей целевой цели все еще содержит "-framework XCTest"
Ответ 2
Я столкнулся с этой ошибкой, переименовав мои цели, один из которых был целью тестирования. Прочитав другие ответы, я понял, что мои "Фазы сборки" > "Скомпилировать источники" включают в себя тестовые классы в качестве источников компиляции для целей без тестирования, которые затем пытались импортировать инфраструктуру XCTest.
Удаление тестовых классов из моих обычных целей. Скомпилированные источники решили это для моего случая.
Ответ 3
Проблема заключается в том, что, согласно сообщению об ошибке dyld, которое вы отправили, ваше приложение связывается с XCTest.framework. Это неверно; только ваш тестовый комплект необходимо связать с XCTest.framework, так как только ваш тестовый комплект содержит тесты.
Ответ 4
У меня была аналогичная проблема с библиотекой OCMock и решением было:
target :"Application Tests", :exclusive => true do
pod 'OCMock'
end
Ответ 5
Вот как я решил проблему:
- Перейдите к проекту "Настройки сборки"
- Найдите "Пути поиска пути"
- Введите следующий путь в столбце под названием продукта:/Applications/Xcode.app/Contents/Developer/Library/Frameworks/
Ответ 6
В моей главной целевой "Link Binary With Libraries" (в разделе "Фазы сборки" ) это была среда тестирования, которую я использовал (Nimble.framework), которая вызывала проблему. Удалили, и все отлично!
Ответ 7
Я решил эту проблему таким образом.
Я отредактировал схему, на вкладке "Сборка" отмечен "Выполнить".
![введите описание изображения здесь]()
Ответ 8
введите ссылку на свою инфраструктуру на пути поиска в каркасе AND
Путь поиска пути запуска в разделе "Параметры сборки" ---... Теперь все настроено на запуск ваших проектов с помощью импорта
Ответ 9
У меня такая же проблема, потому что я добавляю новый файл в фреймворк. Поэтому просто запустите "pod install
", решив мою проблему. Но убедитесь, что ваш объект под Tests
тоже нацелен.
Ответ 10
Только для тех, кто пришел к одной и той же проблеме:
Проверьте боковое правое меню, которое должно выглядеть так:
![Should be]()
И не должно выглядеть так:
![Shouldn't be]()
Ответ 11
В нашем случае мы хотим использовать Mockingjay
как для цели приложения, так и для цели тестирования
target 'MyProject' do
pod 'Mockingjay/Core'
# all pods that are not test go here
target 'MyProjectTest' do
inherit! :search_paths
pod 'Mockingjay/XCTest'
pod 'Quick', ' ~> 0.9.2'
# .. all test pods go here
end
end
Ответ 12
Решением, которое сработало для меня, было изменение атрибута inherit
в вашем подфайле с :search_paths
на :complete
.
Хотя этот ответ предполагает, что :search_paths
предназначен для тестовых сред.
target 'myapp' do
use_frameworks!
target 'myappTests' do
#inherit! :search_paths
inherit! :complete
end
end