2014-02-21 63 views
1

我想要得到一個基本的應用程序mac應用程序與XCTest和OCMock運行。但我得到在運行時出現鏈接錯誤,我有跑就好了幾個簡單的XCTests,但OCMock測試不工作(其他測試隱藏了簡潔):添加OCMock到Xcode將不會鏈接在運行時

:在運行時收到

#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 

我做了什麼:

  1. 下載最新OCMock.framework,把它變成/Library/Frameworks
  2. 對於我的HarkTests在Xcode中的目標我已經在「Link Binary With Libraries」中添加了OCMock - 但是它沒有顯示在可用框架列表中,我必須手動導航到它。這爲我提出了一個紅旗,但我不知道爲什麼Xcode不認識它。
  3. 編譯好。但在運行時拋出上述錯誤(所以沒有測試運行)。

回答

3

在編譯時查找框架的邏輯與在運行時查找框架的邏輯不同。 OCMock使用@rpath機制。我會認爲/Library/Frameworks默認是在路徑上。這似乎並非如此。您可以嘗試將Runpath Search Paths版本設置設置爲包含已安裝OCMock的目錄。

+0

謝謝。就是這樣。我必須在運行時搜索路徑中添加'/ Library/Frameworks'。但這很奇怪,它沒有在默認情況下... –