使用Swift

时间:2015-07-03 14:22:37

标签: ios objective-c swift xcode6 kif

我试图将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的建议,包括:

  • 为App和测试包目标
  • 设置运行路径搜索路径到@ executable_path / Frameworks
  • 设置"嵌入式内容包含Swift Code"是的

我也尝试过:

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

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

如果我回到仅使用Objective C测试,一切正常。

我错过了什么?

1 个答案:

答案 0 :(得分:10)

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

一旦我补充说,一切都很好。

enter image description here