Пакет UITests не может быть загружен, потому что он поврежден или отсутствует необходимые ресурсы. Попробуйте переустановить комплект
Я не могу запустить свой тестовый пример из-за следующих ошибок:
- Пакет "UITests" не может быть загружен, поскольку он поврежден или отсутствует необходимые ресурсы. Попробуйте переустановить пакет.
- Библиотека не загружена: @rpath/Alamofire.framework/Alamofire.
- Причина: изображение не найдено
Попробуйте искать и решать с двух дней, но не можете пройти через эту проблему, кто-то может помочь.
Ответы
Ответ 1
Мне удалось воспроизвести эту проблему с проектом, сгенерированным Xcode 10.1. Я использовал Swift 4.2 и CocoaPods в качестве менеджера зависимостей. У меня был следующий Podfile:
# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'
target 'MyApp' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for MyApp
pod 'Alamofire', '4.8.1'
target 'MyAppTests' do
inherit! :search_paths
# Pods for testing
end
target 'MyAppUITests' do
inherit! :search_paths
# Pods for testing
end
end
Затем я удалил use_frameworks!
, смотрите эту ссылку для более подробной информации:
# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'
target 'MyApp' do
# Pods for MyApp
pod 'Alamofire', '4.8.1'
target 'MyAppTests' do
inherit! :search_paths
# Pods for testing
end
target 'MyAppUITests' do
inherit! :search_paths
# Pods for testing
end
end
Я также получил несколько предупреждений, как это:
[!] The 'MyAppUITests [Debug]' target overrides the 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' build setting defined in 'Pods/Target Support Files/Pods-MyApp-MyAppUITests/Pods-MyApp-MyAppUITests.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the '$(inherited)' flag, or
- Remove the build settings from the target.
Вот почему я удалил эту строку из настроек сборки MyAppUITests:
![MyAppUITests build settings]()
После этого запустите pod deintegrate && pod install
и проблема исчезла. Вероятно, для проектов с большим количеством зависимостей (как здесь) вам нужно использовать другое решение.
Ответ 2
Это потому, что ваши контейнеры применимы только к вашей целевой платформе Framework, а не к тестовым. Добавьте цель тестирования в ваш файл.
Пример:
target 'MyFramework' do
use_frameworks!
pod 'Alamofire', '~> 4.5'
end
target 'MyFrameworkTests' do
use_frameworks!
pod 'Alamofire', '~> 4.5'
end
Ответ 3
Убедитесь, что цель развертывания в ваших настройках сборки UITest настроена так же, как и приложение-хост, которое вы пытаетесь протестировать. В моем случае я добавил UITesting target позже, и он создал его со значением по умолчанию для iOS-объекта развертывания. Если вы затем попытаетесь запустить UITest на iOS ниже 12, это дало мне ошибку, упомянутую в вопросе.
Ответ 4
В моем случае мне нужно было разделить цель тестов пользовательского интерфейса с помощью use_frameworks!
,
Перемещение цели тестов пользовательского интерфейса из вложенной структуры в собственную не поможет, если вы указали use_frameworks!
глобально где-то в верхней части подфайла.
Подфайл с ошибкой (оригинал):
platform :ios, '10.0'
inhibit_all_warnings!
use_frameworks!
target 'MyProject' do
pod 'R.swift', '~> 5.0'
pod 'Moya/RxSwift', '~> 12.0'
# and other pods
target 'MyProjectTests' do
inherit! :search_paths
pod 'iOSSnapshotTestCase', '~> 6.0'
end
target 'MyProjectUITests' do
inherit! :search_paths
end
end
Подфайл с ошибкой (сначала попытайтесь исправить):
platform :ios, '10.0'
inhibit_all_warnings!
use_frameworks!
def shared_pods
pod 'R.swift', '~> 5.0'
end
target 'MyProject' do
shared_pods
pod 'Moya/RxSwift', '~> 12.0'
# and other pods
target 'MyProjectTests' do
inherit! :search_paths
pod 'iOSSnapshotTestCase', '~> 6.0'
end
end
target 'MyProjectUITests' do
shared_pods
end
Финальный рабочий подфайл:
platform :ios, '10.0'
inhibit_all_warnings!
def shared_pods
pod 'R.swift', '~> 5.0'
end
target 'MyProject' do
use_frameworks!
shared_pods
pod 'Moya/RxSwift', '~> 12.0'
# and other pods
target 'MyProjectTests' do
inherit! :search_paths
pod 'iOSSnapshotTestCase', '~> 6.0'
end
end
target 'MyProjectUITests' do
shared_pods
end
Ответ 5
Мне нужно было добавить расположение моих фреймворков в путь поиска Runpath по целям> mytestTarget> Параметры сборки> Путь поиска пути
Ответ 6
Переход на устаревшую систему сборки исправил проблему с Xcode 10.
Ответ 7
В ваших тестах цель измените inherit! :search_paths
на inherit! :complete
.
Смотрите документацию, чтобы узнать, что это делает.
Ответ 8
Я смог исправить эту проблему, ответив на ответ Романа Подымова, затем запустил pod deintegrate
затем pod install
Ответ 9
Моя проблема была решена следующим образом: 1) удалите цель UITests из файла pod. Первоначально у меня было следующее в файле pod:
target 'XUITests' do
inherit! :search_paths
end
2) дезинтегрировать капсулы (с помощью капсулы)
3) Установите стручки (с установкой стручка)
4) Очистите ваш проект и запустите проект или ваш UITest
Ответ 10
Эта ошибка произошла со мной, когда я добавил фреймворк в проект (и сам фреймворк) и попытался запустить тесты. Я сделал это необязательным, а не обязательным, и тесты прошли успешно. ![enter image description here]()
Ответ 11
![1]()
] 3
- Перейти к созданию фаз
- Открыть копию копий Ресурсы и скопировать путь
- Вставьте путь, который вы скопировали из Ресурсов Copy Pods и измените ресурсы имен тегов с помощью фреймворков
- Очистка и сборка
- Запустите UITestsFile
Ответ 12
У меня была такая же проблема при выполнении тестов. Я использую cocoapods. Затем я просмотрел свой журнал сборки, и я заметил, что моя целевая зависимость от тестовой цели не соблюдается. Цель тестирования была построена первой, даже несмотря на то, что у меня была цель моего приложения в качестве целевой зависимости. Исправлено было идти делать
Фазы построения> Целевые зависимости
И удалите, повторно добавьте мое приложение в качестве зависимости, затем он начал строить в правильной последовательности.
Проблемы, имеющие подпись
Библиотека не загружена: @rpath...
Обычно они связаны с пути поиска каркаса в настройках сборки. Но в этом случае мои рамки поиска были заполнены кокоаподами и выглядели прекрасно. Однако, если сборка не учитывает целевые зависимости, то даже если путь верен, не будет никакой инфраструктуры в этом месте назначения для копирования (поскольку она еще не будет скомпилирована), следовательно, ошибка "отсутствует библиотека".
Ответ 13
Для меня ошибка была при сборке UITests. Решение: Targer был с неправильной версией iOS, я заменяю на ту же версию, что и протестированная Target, и все работает !!
Ответ 14
Если вы действительно используете Cocoapods, вам, вероятно, просто нужно запустить "pod install", и настройки сборки будут автоматически обновлены.