【问题标题】:KIF test bundle XCTest.dylib not loading when using Swift使用 Swift 时未加载 KIF 测试包 XCTest.dylib
【发布时间】:2015-09-21 10:16:23
【问题描述】:

我正在尝试将 Swift 中的新测试添加到当前用 Objective C 编写的现有 KIF 测试包中。

设置:

  • Xcode 6.4
  • cocoapods 0.37.2
  • Podfile 使用最新版本的 KIF

我已经设置了 Swift 桥接头,导入了 KIF 和我项目的其他相关部分,以使这些对 Swift 可用。

我已将事情简化为一个简单的测试用例,现阶段甚至不使用 KIF:

import Foundation

class MyFirstTest : KIFTestCase {

    func testOne() {
        NSLog("Done")
    }
}

测试包构建良好,但是当我运行时,我得到:

2015-07-03 14:52:32.620 MyApp[1104:204793] 加载 /private/var/mobile/Containers/Data/Application/F20A664E-BD2D-4299-A93F-4C6758CBAF34/tmp/MyApp_UI_Tests.xctest/ 时出错MyApp_UI_Tests:dlopen(/private/var/mobile/Containers/Data/Application/F20A664E-BD2D-4299-A93F-4C6758CBAF34/tmp/MyApp_UI_Tests.xctest/MyApp_UI_Tests,262):库未加载:@rpath/libswiftXCTest。 dylib

引用自:/private/var/mobile/Containers/Data/Application/F20A664E-BD2D-4299-A93F-4C6758CBAF34/tmp/MyApp_UI_Tests.xctest/MyApp_UI_Tests

原因:找不到图片 DevToolsBundleInjection:加载包时出错'/private/var/mobile/Containers/Data/Application/F20A664E-BD2D-4299-A93F-4C6758CBAF34/tmp/MyApp_UI_Tests.xctest'

我已经尝试了here的建议,包括:

  • 将应用程序和测试包目标的运行路径搜索路径设置为 @executable_path/Frameworks
  • 将“嵌入内容包含 Swift 代码”设置为“是”

我也试过了:

  • 完整的 cocoapods 清理并重建项目/工作区
  • 删除所有 DerivedData 并运行干净的构建

我也看到了这可能与代码签名身份有关的建议,但捆绑包无法在具有开发身份的模拟器以及真实设备上加载。

如果我恢复到只使用 Objective C 测试,一切正常。

我错过了什么?

【问题讨论】:

    标签: ios objective-c swift xcode6 kif


    【解决方案1】:

    终于明白了。对我来说,解决方案是确保测试包目标的运行路径设置包括 @loader_path/Frameworks 以及 @executable_path/Frameworks。

    我添加后,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      相关资源
      最近更新 更多