Xcode получил «Изображение не найдено» во время выполнения теста

#swift #xcode-ui-testing #earlgrey #earlgrey-2

#swift #xcode-ui-тестирование #earlgrey #earlgrey-2

Вопрос:

Я пытаюсь добавить тесты пользовательского интерфейса в свой проект, используя EarlGrey 2.0, выполнив следующие действия для установки фреймворка: https://www.youtube.com/watch?v=KQaA11qVQn0 (с использованием кокосовых стручков). Он успешно собран, но когда я попытался запустить тест, я получил эту ошибку:

 2020-11-27 14:18:16.076586 0700 X-UITests-Runner[75526:5465621] The bundle X-UITests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
2020-11-27 14:18:16.076704 0700 X-UITests-Runner[75526:5465621] (dlopen_preflight(/X-blqsydhdzeecqndvwzwsshajcwdm/Build/Products/Debug-iphonesimulator/X-UITests-Runner.app/PlugIns/X-UITests.xctest/X-UITests): Library not loaded: @rpath/Alamofire.framework/Alamofire
  Referenced from: /X-blqsydhdzeecqndvwzwsshajcwdm/Build/Products/Debug-iphonesimulator/X-UITests-Runner.app/PlugIns/X-UITests.xctest/X-UITests
  Reason: image not found)
 

У меня есть это в моем подфайле:

 use_frameworks!

def shared_pods
  pod 'Alamofire'
  pod 'Firebase'
  pod 'Firebase/Analytics'
  pod 'Firebase/RemoteConfig'
  pod 'Firebase/Crashlytics'
  pod 'Firebase/Messaging'
  pod 'Firebase/Auth'
  pod 'Firebase/Database'
  pod 'Introspect'
  pod 'ReachabilitySwift'
  pod 'RealmSwift'
  pod 'SDWebImageSwiftUI'
  pod 'SwiftKeychainWrapper'
  pod 'Zip'
end

target 'X' do
  shared_pods
  pod 'EarlGreyApp'
end

target 'X-UITests' do
  inherit! :search_paths
  pod 'EarlGreyTest'
  pod 'eDistantObject', '0.9.0'
end
 

Я попытался снять флажок Find Implicit Dependencies на схеме, но все равно получил ошибку. Любая помощь? Спасибо.

Комментарии:

1. Можете ли вы попробовать добавить «use_frameworks!» после <<target ‘X’ do>>> . target 'X' do use_frameworks! .

Ответ №1:

Попробуйте использовать use_frameworks! рядом с целью,

     def shared_pods
      pod 'Alamofire'
      pod 'Firebase'
      pod 'Firebase/Analytics'
      pod 'Firebase/RemoteConfig'
      pod 'Firebase/Crashlytics'
      pod 'Firebase/Messaging'
      pod 'Firebase/Auth'
      pod 'Firebase/Database'
      pod 'Introspect'
      pod 'ReachabilitySwift'
      pod 'RealmSwift'
      pod 'SDWebImageSwiftUI'
      pod 'SwiftKeychainWrapper'
      pod 'Zip'
    end

    target 'X' do
      use_frameworks!
      shared_pods
      pod 'EarlGreyApp'
    end

    target 'X-UITests' do
      use_frameworks!
      inherit! :search_paths
      pod 'EarlGreyTest'
      pod 'eDistantObject', '0.9.0'
    end
 

Ответ №2:

Такого рода ошибка, как правило, говорит о том, что какой-то класс, который вы пытаетесь протестировать, имеет зависимость от модуля Alamofire. Поэтому вам также необходимо добавить Alamofire к вашей тестовой цели

 target 'X-UITests' do
    ...
    pod 'Alamofire'
    ...
end