Подтвердить что ты не робот

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/Stack Exchange Tests: dlopen (/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests, 262): Библиотека не загружена:/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/Products/Debug-iphonesimulator/Stack Программа Exchange Tests.xctest 'завершена кодом выхода: 0

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

У меня была такая же проблема, хотя мой 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, заключается в том, что у меня установлены как iOS 6, так и 7.1 SDK. Я не проверял, что произойдет, если я удалю SDK iOS 6.

НТН