2012-04-10 19 views
1

我正在嘗試爲我的iOS應用程序設置應用程序測試。我使用下面的文章爲我在做什麼的基礎: http://cocoawithlove.com/2009/12/sample-iphone-application-with-complete.html

所以我創建了我所需要的額外的目標。我現在有3個目標: -The原來的目標 -The測試目標 -The重複的目標

我已經加入了原來的目標爲目標依賴於我的測試目標。然後,我將測試目標添加爲我的重複目標的目標依賴項。

但是,每當我嘗試引用過一次課在我的測試情況下,我得到:用於建築的ARMv7

未定義的符號: 「_OBJC_CLASS _ $ _ MyClass的」,從引用:在MyApplicationTests objc級-REF .o 「_OBJC_CLASS _ $ _ AnotherClass」,引用來自: objc-class-ref在MyApplicationTests.o中 ld:符號(s)未找到架構armv7 clang:錯誤:linker命令失敗,退出代碼1(使用-v看到調用)

有沒有另一個位置我需要設置某種依賴關係來告訴測試目標它依賴於原始目標?

乾杯

回答

6

所以我找到了解決這個問題的: http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

你需要做以下以避免此問題:

回到您的應用程序的目標(而不是測試目標),設置符號由默認構建設置隱藏到NO

現在有沒有需要任何的源文件,只要原來的目標被設定爲依賴添加到編譯源代碼的測試目標。

+1

OMG經過一天試圖弄清楚爲什麼這突然不起作用,這個小翻轉固定它。 – shortstuffsushi 2012-11-27 17:07:32

+0

我是upvoting你曾經給過的所有其他答案,謝謝你! – jemmons 2014-03-13 03:21:04

0

你必須包括任何你從你的測試代碼,爲您的測試目標編譯源列表中引用您的類的.m文件。從你提供的錯誤信息來看,這聽起來像是你的問題。在XCode 4.2中,您可以通過在項目導航器中選擇項目,然後選擇測試目標,構建階段選項卡和展開編譯源部分,將編譯源添加到目標。單擊「編譯源」部分下方的「+」,然後選擇您的類的.m文件。

+0

是否添加目標依賴性不這樣做?那麼這是否意味着我每次向項目添加新文件時,都需要更新測試目標並將該文件包含到編譯源中。看起來有點低效。 – KTas 2012-04-10 03:15:28

+0

是的。這並不難。將文件添加到項目時,在指定文件名的對話框中,您會看到底部的目標列表。你只需檢查那些適用的。我認爲它甚至可以保存下一個文件的設置。 – strings42 2012-04-10 03:24:03

+0

奇怪的是,我上面鏈接的博客文章沒有這樣做。除了自己的測試用例文件和一些OCMock文件以外,測試用例目標在編譯源中沒有任何源文件。 – KTas 2012-04-10 04:15:21

相關問題