Xcode 5 выдает ошибку `` Библиотека не загружена '' при добавлении тестовой цели

Я пробовал добавить тестовую цель на Xcode 5 с помощью Add Target -> Add Cocoa Touch Unit Testing Bundle. Однако когда я запускаю тест, я получаю следующую ошибку:

2013-09-24 10: 43: 14.446 Обмен стеками [48895: c07] Ошибка загрузки / Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Products / Debug-iphonesimulator / Stack Exchange Tests.xctest / Тесты обмена стеком: dlopen (/ Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Products / Debug-iphonesimulator / Stack Exchange Tests.xctest / 26) : Библиотека не загружена: /Developer/Library/Frameworks/XCTest.framework/XCTest Ссылка на: / Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Products / Debug- iphonesimulator / Stack Exchange Tests.xctest / Stack Exchange Причина тестов: изображение не найдено IDEBundleInjection.c: Ошибка загрузки пакета '/ Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Продукты / Debug-iphonesimulator / Stack Exchange Tests.xcte st 'Программа завершилась с кодом выхода: 0

Почему это не работает?


person Arie Litovsky    schedule 24.09.2013    source источник


Ответы (3)


Вы должны запустить свой тест на симуляторе iOS 7. Это не будет работать на iOS 6.x.

person Arie Litovsky    schedule 24.09.2013
comment
Вы просто сделали мой день. - person shawnwall; 26.09.2013
comment
рад, что смог помочь :) Я полагаю, что со временем это случится с кем-нибудь - person Arie Litovsky; 26.09.2013
comment
Отлично, все теперь компилируется и запускается, за исключением того, что мои тесты XCTest не запускаются. Зеленые треугольники рядом с тестами OCUnit полые рядом с тестами XCTest. - person Erik Engheim; 27.09.2013
comment
Вы обязательно настроили их на панели «Тесты» в схеме «Тест»? Также вы можете нажимать на эти полые круги, чтобы запускать их по отдельности. - person Arie Litovsky; 28.09.2013
comment
То же самое верно и для устройств iOS. - person voromax; 28.09.2013
comment
Я согласен, что это ответ, но мне не удалось найти что-либо в документации Apple, в которой говорится об этом. Кто-нибудь знает, где задокументирована эта зависимость? - person maxpower; 30.09.2013
comment
Та же проблема с XCode 6 и iOS 8.0. Вы должны запускать свои тесты на симуляторе iOS 8.0. Я использовал iPhone 5s (8.0). - person Nick N; 06.10.2014

Я исправил это, установив для вкладки «Общие» -> «Цель развертывания» значение 7.0 (для приложения, которое вы используете для «запуска» модульных тестов). Это не очень хорошо, если вы хотите поддерживать более раннюю версию, чем 7.0 для вашего основного приложения. Но поскольку в цели сборки модульного теста нет цели развертывания, вы не можете установить ее там. Вместо этого вам нужно установить цель модульных тестов (на вкладке «Общие») для приложения, цель развертывания которого - 7.0. Вы можете настроить «TestApp» для этого, чтобы вам не приходилось ограничивать развертывание вашего основного приложения.

person Temporaneous    schedule 18.12.2013

У меня была точно такая же проблема, хотя мой CI-сервер был настроен с Xcode 5.1.1 и iOS 7.1. Я перепробовал много параметров, наконец, правильный был -destination.

Вот пример полной команды:

xcodebuild -workspace MyApp.xcworkspace -sdk iphonesimulator7.1 -destination "platform=iOS Simulator,name=iPhone Retina (4-inch)" -scheme MyAppTests test

Он также работает с xctool 0.1.16.

Кредиты: http://www.mokten.com/2014/04/xcodebuild-unit-tests-library-not-loaded-no-image-found/

Одна деталь, которая может объяснить, почему мне пришлось добавить параметр -destination, заключается в том, что у меня установлены SDK для iOS 6 и 7.1. Я не проверял, что произойдет, если я удалю iOS 6 SDK.

HTH

person Philippe A    schedule 09.10.2014