2012-01-19 43 views
2

我試圖單元測試添加到我的項目,這裏是我在做什麼:iPhone XCode的單元測試框架的構建設置

  1. 添加目標 - >可可觸摸單元測試包
    product:AuthyTests
    company Identifier: com.authy.com
    project:authy

    所以所得到的捆綁標識符是:com.authy.AuthyTests

  2. 如果我運行命令+ U(產品 - >測試)它工作單元測試運行。

  3. 現在,我從我的項目中添加一個庫,以便#包括 「otp.h」 AuthyTests.h

  4. 添加一些調用AuthyTest.m([Otp foo];),我得到一個錯誤:


Undefined symbols for architecture i386: 
"_OBJC_CLASS_$_Otp", referenced from: 
objc-class-ref in AuthyTests.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

事情我已經嘗試:

1.I嘗試添加authy.app作爲AuthyAppTests的TargetDependencies依賴構建階段。

2.Targets - > AuthyTests - > BuildSettings - >只能建活動Architechture - >是

我使用的Xcode 4.2。我也試過這個網站上的所有內容:
http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

我缺少的是對建立單元測試上的XCode?

回答

3

這聽起來像是教程中的一個步驟沒有被遵循。具體來說,步驟4-6。我的猜測是捆綁加載器的兩個設置是關閉的。另一種可能性嘗試:

在你的主要Authy應用目標:

  • 變化的架構構建設置到:
    • I386
    • 的ARMv6
    • 的ARMv7
  • 也將「僅將Build Active Architectures」修改爲「否」

其中一個應該強制主要的Authy二進制文件中有i386。如果這仍然不起作用,那麼這是捆綁加載器設置不正確。

+0

事實證明,步驟4導致文件丟失錯誤(我們仍然可以找到文件系統中奇怪的文件)。今晚晚些時候我們會再試一次......並且回報,謝謝 – daniel