Xcode 在运行测试时出现“找不到图像”

Posted

技术标签:

【中文标题】Xcode 在运行测试时出现“找不到图像”【英文标题】:Xcode got "Image Not Found" while running the test 【发布时间】:2020-11-27 07:26:11 【问题描述】:

我正在尝试使用 EarlGrey 2.0 将 UI 测试添加到我的项目中,方法是按照以下步骤安装框架:https://www.youtube.com/watch?v=KQaA11qVQn0(使用 Cocoapods)。它构建成功,但是当我尝试运行测试时,出现此错误:

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)

我的 podfile 上有这个:

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,但仍然出现错误。有什么帮助吗?谢谢。

【问题讨论】:

你可以尝试添加“use_frameworks!”在 >> 之后。 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 pod。因此,您还必须将 Alamofire 添加到您的测试目标中

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

【讨论】:

以上是关于Xcode 在运行测试时出现“找不到图像”的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义框架时出现“找不到图像”错误

未加载第 3 方框架库:“找不到图像”

iOS(Xcode)上的 Python-Kivy:Foundation 上出现 dlopen 错误:(...):找不到图像

Xcode:将全新框架链接到全新应用程序失败并显示“找不到图像”

导入 cv2:importError:dlopen... 原因:找不到图像

“dyld:无法加载插入的库'/usr/lib/libgmalloc.dylib',因为找不到图像”