Не удалось загрузить тестовый комплект, поскольку непредвиденная ошибка
Недавно я начал писать тестовую версию для одной старой статической библиотеки. Я загрузил библиотеку в Xcode 5, так как статическая библиотека старая, мне нужно вручную добавить TestProject с Test Target.
Когда я пытаюсь "Продукт → Тест", он запускает эмулятор, а Console показывает следующую ошибку
Тестовый пакет в /xxx/xxx/xxx/StaticLibTest.xctest не может быть загружен, поскольку произошла непредвиденная ошибка: Ошибка Domain = NSCocoaErrorDomain Code = 3587 "Пакет" StaticLibTest.xctest "не может быть загружен, поскольку он поврежден или отсутствует Ресурсы." (dlopen_preflight (/xxx/xxxx/xxx/Debug-iphonesimulator/StaticLibTest.xctest/StaticLibTests): не найдено подходящего изображения. Вы нашли:
У меня нет никакой подсказки, почему эта ошибка возникает.
Любая помощь для указания в правильном направлении будет действительно оценена.
Ответы
Ответ 1
Я нашел ответ сам.
Настройки сборки → Архитектуры должны быть одинаковыми для библиотеки и тестового проекта
Архитектуры → Архитектуры = Архитектуры Standrad (armv7, armv7s, arm64) $(ARCHS_STANDARD)
Связывание с тестовым проектом → Тип Mach-O - Bundle
Связывание → Тип Mach-O = Пакет
Выполнять и запускать тесты. Thats it
Ответ 2
Если другие читатели получают эту ошибку, и вы используете Карфаген, чтобы добавить фрейм, убедитесь, что фаза Copy Files
имеет Назначение: Рамки.
![Добавление фреймворков из Карфагена]()
Если вы случайно добавили фреймворки в фазу Copy Files
с другой целью (кроме Framework) или Copy Bundle Resources
, это также приведет к сообщению об ошибке поврежденного/недействительного пакета.
Ответ 3
У меня была аналогичная проблема. Для меня проблема заключалась в модульной структуре тестирования, которая была динамической структурой, но не скопирована в xctest bundle.
Решение заключалось в том, чтобы добавить фазу "Копировать файлы" в мой целевой объект unit test, установить ее назначение в "Framework" и добавить мою фреймворк в качестве входного файла.
Ответ 4
Мне удалось решить эту проблему, установив приложение-хост для целевой задачи:
![Host Application]()
Ответ 5
Для меня эта проблема возникла из-за того, что в моей тестовой цели, чем у моего основного приложения, была настроена настройка сборки "iOS Deployment Target". Как только я сделал их одинаково, проблема исчезла.
Ответ 6
Проверьте, не забыли ли вы добавить тестовую цель в ваш Podfile
:
target 'MyProject' do
# Add test target
target 'MyProjectTests' do
inherit! :search_paths
end
pod 'SomePodLibrary'
end
Ответ 7
Отключение конфигурации контейнера для тестовой цели устранило проблему для меня, это как-то связано с тем, что с ним связано конфигурация pod.
Ответ 8
Для меня мы только что включили права CloudKit. По какой-то причине это сломало здание.
Ответ 9
В основном я сделал все вышеперечисленное, кроме CloudKit, и, откровенно говоря, немного разочарован Apple: |
Ответ 10
Была похожая проблема:
FrameworkA импортирует FrameworkB
FrameworkA-Tests также импортирует FrameworkB
Что решило проблему, так это удалить (прокомментировать) все ссылки на FrameworkB в FrameworkA-Tests, затем запустить тесты один раз и раскомментировать ссылки.
FrameworkA-Tests теперь импортирует FrameworkB и работает нормально.
Ответ 11
Не удалось загрузить UITests пакета, поскольку он поврежден или отсутствует необходимый ресурс. Попробуйте переустановить комплект
Убедитесь, что все ваши цели используют одну и ту же версию iOS в: Настройки сборки → Цель развертывания iOS