将OCMock添加到Xcode将不会在运行时链接

将OCMock添加到Xcode将不会在运行时链接,xcode,xcode5,ocmock,xctest,Xcode,Xcode5,Ocmock,Xctest,我正在尝试使用XTest和OCMock运行一个基本的mac应用程序。但我在运行时遇到了链接错误,我有几个普通XCMets运行得很好,但OCMock测试不起作用(为了简洁起见,隐藏了其他测试): 我所做的: 下载最新的OCMock.framework并将其放入/Library/Frameworks 对于Xcode中的HarkTests目标,我在“链接二进制文件与库”中添加了OCMock,但是它没有显示在可用框架列表中,我必须手动导航到它。这对我来说是个危险信号,但我不知道为什么Xcode不能识别它

我正在尝试使用XTest和OCMock运行一个基本的mac应用程序。但我在运行时遇到了链接错误,我有几个普通XCMets运行得很好,但OCMock测试不起作用(为了简洁起见,隐藏了其他测试):

我所做的:

  • 下载最新的
    OCMock.framework
    并将其放入
    /Library/Frameworks
  • 对于Xcode中的
    HarkTests
    目标,我在“链接二进制文件与库”中添加了OCMock,但是它没有显示在可用框架列表中,我必须手动导航到它。这对我来说是个危险信号,但我不知道为什么Xcode不能识别它
  • 汇编得很好。但是在运行时抛出上述错误(因此没有测试运行)

  • 编译时查找框架的逻辑与运行时查找框架的逻辑不同。OCMock使用
    @rpath
    机制。我本以为默认情况下,
    /Library/Frameworks
    在路径上。事实似乎并非如此。您可以尝试将
    运行路径搜索路径
    生成设置设置为包含已安装OCMock的目录。

    编译时查找框架的逻辑与运行时查找框架的逻辑不同。OCMock使用
    @rpath
    机制。我本以为默认情况下,
    /Library/Frameworks
    在路径上。事实似乎并非如此。您可以尝试设置
    运行路径搜索路径
    生成设置,以包括已安装OCMock的目录。

    谢谢。就这样。我不得不将
    /Library/Frameworks
    添加到运行时搜索路径中。但这太奇怪了,默认情况下它没有这个…谢谢。就这样。我不得不将
    /Library/Frameworks
    添加到运行时搜索路径中。但这太奇怪了,默认情况下它没有这个。。。
    #import <OCMock/OCMock.h>
    
    - (void)testLoadingInvalidSettingsThrowsAnError
    {
        id harkMock = [OCMockObject mockForClass:[Hark class]];
        [[[harkMock stub] andReturn:@"bla"] getSettingsAsRawJson];
        XCTAssertThrowsSpecificNamed([harkMock loadSettings], NSException, @"InvalidJson");
    }
    
    2014-02-21 11:02:47.929 Hark[90819:303] Error loading /Users/chancee/Library/Developer/Xcode/DerivedData/Hark-bsndafsdxydbivhhuuuyelepegkp/Build/Products/Debug/HarkTests.xctest/Contents/MacOS/HarkTests:  dlopen(/Users/chancee/Library/Developer/Xcode/DerivedData/Hark-bsndafsdxydbivhhuuuyelepegkp/Build/Products/Debug/HarkTests.xctest/Contents/MacOS/HarkTests, 262): Library not loaded: @rpath/OCMock.framework/Versions/A/OCMock
      Referenced from: /Users/chancee/Library/Developer/Xcode/DerivedData/Hark-bsndafsdxydbivhhuuuyelepegkp/Build/Products/Debug/HarkTests.xctest/Contents/MacOS/HarkTests
      Reason: image not found