未加载库: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 下等待,直到可以看到某些视图以供点击?
如果使用模拟器,从 Xcode 和 xcodebuild 运行 xctests 会失败 - dyld:未加载库:@rpath/libswiftSwiftOnoneSupport.dylib 问题 -