未加载库:Xcode10 中 UITests 中的 @rpath/libswiftMetalKit.dylib

Posted

技术标签:

【中文标题】未加载库:Xcode10 中 UITests 中的 @rpath/libswiftMetalKit.dylib【英文标题】:Library not loaded: @rpath/libswiftMetalKit.dylib in UITests in Xcode10 【发布时间】:2018-09-26 23:29:32 【问题描述】:

在 Xcode10 中运行我的 UITests Target 时,我现在得到:

库未加载:@rpath/libswiftMetalKit.dylib。

引用自:../MyApp.app/PlugIns/MyAppUITests.xctest/Frameworks/Hero.framework/Hero

原因:图片未找到)

我的常规目标工作正常。我的常规目标和 UITests 目标都将“始终嵌入 Swift 标准库”设置为是,但我注意到 Pods 项目和框架已将此设置为否。

我尝试过的事情:

清理项目、删除派生数据并重建项目 验证我的代码签名是否有效 在 Pods 项目和框架上将“始终嵌入 Swift 标准库”设置为“是”。 将 @rpath 添加到 UI 测试目标的运行路径搜索路径

到目前为止,没有任何效果。是否还有其他人遇到此问题或了解可能有什么帮助?

编辑: 感谢@matt 为我指出相关问题的方向。 我尝试导入 UIKit 并重新创建目标,但均无济于事。 在我的一个 UITest 目标中导入特定框架(即 Hero)或库(即 MetalKit)允许它构建,但神秘的是,由于 libswiftSwiftOnoneSupport(由 Alamofire 引用)没有构建,我的另一个 UITest 目标仍然不会构建。 仍然不确定这是否是由于我的 Cocoapods 设置(包括 UITest 目标在内的所有目标都导入了所有 pod,我认为这应该是不必要的,但如果我不这样做,我会丢失我的 pod 的框架),但完全相同的设置工作正常XCode 10 之前的版本。

【问题讨论】:

类似:***.com/questions/33879799/… 最简单的解决方案大概就是复制 UI 测试文件代码,删除 UI 测试目标及其所有文件,制作一个全新的 UI 测试目标,然后粘贴代码。升级后我经常需要这样做。 【参考方案1】:

对我有用的是以下内容:

从您的基本项目的目标中复制,比如说“sample_app”> 构建阶段[CP] 嵌入 Pods 框架部分。

现在在 UITest TARGETS 中,假设“sample_app_UITests”创建一个新的 Run Script 并复制所有内容。

清理/构建

【讨论】:

【参考方案2】:

将工作区设置设置为 Legacy build 为我修复了它:File > Workspace Settings > Build System: Legacy Build System

【讨论】:

以上是关于未加载库:Xcode10 中 UITests 中的 @rpath/libswiftMetalKit.dylib的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中的 UITests 下等待,直到可以看到某些视图以供点击?

Xcode12 CoreNFC 模拟器库未加载

如果使用模拟器,从 Xcode 和 xcodebuild 运行 xctests 会失败 - dyld:未加载库:@rpath/libswiftSwiftOnoneSupport.dylib 问题 -

Swift dyld:未加载库 - 使用 CocoaPods

UITests(快照)中的本地化字符串始终为英文

Xamarin UITests:Calabash 未链接