2010-12-17 31 views
4

任何人都可以指向我有關如何使儀器運行UIAutomation腳本並啓動iPhone應用程序與在模擬器中運行的調試器的文檔?如何獲得UIAutomation,Simulator和Xcode Debugger同時運行?

限制條件: 我只有iPhone 3g硬件才能與UIAutomation一起測試並調試設備,但無法正常工作。 正常情況下,測試腳本只是運行以確保所有內容都通過,但現在存在一個奇怪的錯誤,只有在UIAutomation腳本運行時纔會觸發(這是一件好事)。該錯誤不能在手動操作中複製。 似乎無論如何都要將Instruments UIAutomation附加到已在仿真器中運行的過程。沒有選擇。 啓動儀器UIAutomation直接不會導致它啓動調試器。

我會假設有一個可以在儀器編輯活動目標進行配置(環境變量,參數,工作目錄)來做到這一點一些命令行魔術,但我還沒有發現魔術的段落。

感謝, 尼爾

回答

4

這難倒我了一會兒,太 - 特別是當選擇了自動化儀表以來,該儀器中的應用明確地說:Current instrumentation disallows attach。關鍵是要認識到,在模擬器中運行的應用程序作爲其自己的進程在主機系統中可見,因此直接從GDB進行連接運行良好。這些指令是在Snow Leopard上的XCode 4.2(4C199)10.6.8:

  1. 在儀器啓動測試,但是你通常做的(可以直接從儀器,或在Xcode 4的Product -> Profile選擇任何模板和腳本。回到Xcode,在菜單Product -> Attach to Process下,你應該看到你的iOS應用程序(按名稱列出)以及你主機上的所有其他應用程序,事實上,它很可能會被列出來首先,部分標題Likely Targets

  2. 如果不可見,請選擇View -> Debug Area -> Show Debug Area,以便您可以看到gdb控制檯。

  3. 按下暫停鍵(Product -> Debug -> Pause)打斷你的計劃。設置斷點,像往常一樣檢查。

那麼接下來的問題就是:爲什麼我看不到我的正常NSLog()輸出在調試器控制檯? 您的應用程序已經綁定自己的控制檯輸出流,因此尋找其輸出的最簡單的地方是在OS X控制檯應用程序(/Applications/Utilities/Console.app)和DATABASE SEARCHES -> All Messages下看。

+0

這是驚人的!謝謝你這個ckhan! – 2014-01-17 18:12:09

相關問題