原因:运行 UI 使用开发 pod 测试时找不到图像
Reason: image not found when running UI tests using a development pod
我有一个可以成功部署到模拟器和设备的应用程序,但是当我尝试 运行 其关联的 UI 测试时,我收到以下错误:
MY_APP_TARGETUITests-Runner[55293:20696349] The bundle
“MY_APP_TARGETUITests” couldn’t be loaded because it is damaged or
missing necessary resources. Try reinstalling the bundle.
MY_APP_TARGETUITests-Runner[55293:20696349]
(dlopen_preflight(/Users/@@@@/Library/Developer/Xcode/DerivedData/MY_APP_TARGET-gbamhqqrrbznxidxekwloacioddy/Build/Products/Debug-iphonesimulator/MY_APP_TARGETUITests-Runner.app/PlugIns/MY_APP_TARGETUITests.xctest/MY_APP_TARGETUITests): Library not loaded: @rpath/libswiftAVFoundation.dylib
Referenced from:
/Users/@@@@/Library/Developer/Xcode/DerivedData/MY_APP_TARGET-gbamhqqrrbznxidxekwloacioddy/Build/Products/Debug-iphonesimulator/MY_APP_TARGETUITests-Runner.app/PlugIns/MY_APP_TARGETUITests.xctest/Frameworks/MyLocalPod.framework/MyLocalPod
Reason: image not found)
第一个问题似乎与 Library not loaded: @rpath/libswiftAVFoundation.dylib
有关,因此我通过以下方式调查了该问题:
我执行了以下项目来尝试解决它:
- 删除并重新安装了受影响的 pod
- 清理并重建
- 重启XCode & 机器
- 删除派生数据
- 为我的本地 pod
添加 s.framework = 'AVFoundation'
到 podspec 文件
- 将始终嵌入 Swift 标准库设置为默认值(我的 pods 现在安装时没有任何警告或错误)
Successful pod installation
None 个解决了第一个错误。
关于第二个,我这里也查到了:
我的Podfile
是这样设置的:
use_frameworks!
inhibit_all_warnings!
platform :ios, '10.3'
def default_pods
pod 'RemotePod', '~> 1.0'
pod 'MyLocalPod', :path => 'path/to/MyLocalPod'
end
target 'MY_APP_TARGET' do
default_pods
end
target 'MY_APP_TARGETTests' do
inherit! :search_paths
default_pods
end
target 'MY_APP_TARGETUITests' do
inherit! :search_paths
default_pods
end
我已经测试过将 pod 直接放入目标中,但这并没有改变任何事情。
所涉及的一切都是 100% Swift,因此在混合方面应该没有任何问题 Objective-C。
重新设置模拟器和设备为我修复了它。
None link 的步骤由 Paul 提供可以解决它。
当您的一个框架使用另一个框架作为其依赖项时,此问题很常见。您应该将所有依赖项直接添加到您的应用程序目标中,而不是将其添加到框架中。
我有一个可以成功部署到模拟器和设备的应用程序,但是当我尝试 运行 其关联的 UI 测试时,我收到以下错误:
MY_APP_TARGETUITests-Runner[55293:20696349] The bundle “MY_APP_TARGETUITests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
MY_APP_TARGETUITests-Runner[55293:20696349] (dlopen_preflight(/Users/@@@@/Library/Developer/Xcode/DerivedData/MY_APP_TARGET-gbamhqqrrbznxidxekwloacioddy/Build/Products/Debug-iphonesimulator/MY_APP_TARGETUITests-Runner.app/PlugIns/MY_APP_TARGETUITests.xctest/MY_APP_TARGETUITests): Library not loaded: @rpath/libswiftAVFoundation.dylib
Referenced from: /Users/@@@@/Library/Developer/Xcode/DerivedData/MY_APP_TARGET-gbamhqqrrbznxidxekwloacioddy/Build/Products/Debug-iphonesimulator/MY_APP_TARGETUITests-Runner.app/PlugIns/MY_APP_TARGETUITests.xctest/Frameworks/MyLocalPod.framework/MyLocalPod
Reason: image not found)
第一个问题似乎与 Library not loaded: @rpath/libswiftAVFoundation.dylib
有关,因此我通过以下方式调查了该问题:
我执行了以下项目来尝试解决它:
- 删除并重新安装了受影响的 pod
- 清理并重建
- 重启XCode & 机器
- 删除派生数据
- 为我的本地 pod 添加
- 将始终嵌入 Swift 标准库设置为默认值(我的 pods 现在安装时没有任何警告或错误)
s.framework = 'AVFoundation'
到 podspec 文件
Successful pod installation
None 个解决了第一个错误。
关于第二个,我这里也查到了:
我的Podfile
是这样设置的:
use_frameworks!
inhibit_all_warnings!
platform :ios, '10.3'
def default_pods
pod 'RemotePod', '~> 1.0'
pod 'MyLocalPod', :path => 'path/to/MyLocalPod'
end
target 'MY_APP_TARGET' do
default_pods
end
target 'MY_APP_TARGETTests' do
inherit! :search_paths
default_pods
end
target 'MY_APP_TARGETUITests' do
inherit! :search_paths
default_pods
end
我已经测试过将 pod 直接放入目标中,但这并没有改变任何事情。
所涉及的一切都是 100% Swift,因此在混合方面应该没有任何问题 Objective-C。
重新设置模拟器和设备为我修复了它。
None link 的步骤由 Paul 提供可以解决它。
当您的一个框架使用另一个框架作为其依赖项时,此问题很常见。您应该将所有依赖项直接添加到您的应用程序目标中,而不是将其添加到框架中。