【问题标题】:Library not loaded: @rpath/libswiftMetalKit.dylib in UITests in Xcode10未加载库:Xcode10 中 UITests 中的 @rpath/libswiftMetalKit.dylib
【发布时间】: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 之前的版本。

【问题讨论】:

  • 最简单的解决方案大概就是复制 UI 测试文件代码,删除 UI 测试目标及其所有文件,制作一个全新的 UI 测试目标,然后粘贴代码。升级后我经常需要这样做。

标签: swift cocoapods xcode10


【解决方案1】:

对我有用的是以下内容:

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

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

清理/构建

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-24
      • 2017-04-20
      • 2016-05-29
      • 2016-10-27
      • 2015-12-22
      • 2021-12-09
      相关资源
      最近更新 更多