Пакет 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

2 [! [3] 3

  • Перейти к созданию фаз
  • Открыть копию копий Ресурсы и скопировать путь
  • Вставьте путь, который вы скопировали из Ресурсов Copy Pods и измените ресурсы имен тегов с помощью фреймворков
  • Очистка и сборка
  • Запустите UITestsFile

Ответ 12

У меня была такая же проблема при выполнении тестов. Я использую cocoapods. Затем я просмотрел свой журнал сборки, и я заметил, что моя целевая зависимость от тестовой цели не соблюдается. Цель тестирования была построена первой, даже несмотря на то, что у меня была цель моего приложения в качестве целевой зависимости. Исправлено было идти делать

Фазы построения> Целевые зависимости

И удалите, повторно добавьте мое приложение в качестве зависимости, затем он начал строить в правильной последовательности.

Проблемы, имеющие подпись

Библиотека не загружена: @rpath...

Обычно они связаны с пути поиска каркаса в настройках сборки. Но в этом случае мои рамки поиска были заполнены кокоаподами и выглядели прекрасно. Однако, если сборка не учитывает целевые зависимости, то даже если путь верен, не будет никакой инфраструктуры в этом месте назначения для копирования (поскольку она еще не будет скомпилирована), следовательно, ошибка "отсутствует библиотека".

Ответ 13

Для меня ошибка была при сборке UITests. Решение: Targer был с неправильной версией iOS, я заменяю на ту же версию, что и протестированная Target, и все работает !!

Ответ 14

Если вы действительно используете Cocoapods, вам, вероятно, просто нужно запустить "pod install", и настройки сборки будут автоматически обновлены.