2010-01-26 65 views
7

我可以從XCode執行此操作,但我希望能夠從命令行啓動iPhone應用程序(在設備上)。可能嗎?從命令行調試iPhone應用程序

爲什麼?因爲我想捕獲一些用於半自動化測試的輸出。我猜我需要爲NSLog輸出使用調試版本,但我也有興趣瞭解其他將NSLog/stdio數據恢復到主機Mac的方法。

+0

我可能是錯的,但我認爲你不能在iPhone上的cli,除非它是越獄? – PurplePilot 2010-01-27 07:37:58

+0

我想他是想在他的電腦上使用CLI在手機上以調試模式啓動應用程序並捕獲輸出。 – 2010-01-28 20:05:48

回答

1

github上有一個名爲titanium_mobile(Titanium Developer的一部分)的項目。

我使用該項目名爲iphonesim的實用程序。它從命令行啓動iPhone應用程序(儘管我不知道如何,我認爲有一種方法可以通過SpringBoard.app來實現)。如果您在Titanium Mobile代碼中升級了一級並查看builder.py,您可以看到他們如何在模擬器中啓動應用程序並捕獲輸出。

+0

這是一段非常有趣的代碼,謝謝。我幾乎可以在模擬器上工作 - 當然瞭解了很多關於自動構建啓動iPhone應用程序的知識。最後,我發現了一種不同的解決方案來滿足我的具體需求,但我認爲這項技術一般都很有趣。 – atobe 2010-02-03 12:35:44

+0

原來的iphonesim項目在這裏:http://github.com/jhaynie/iphonesim – apenwarr 2010-04-08 03:09:19

0

如果設備已越獄,您可以在設備上執行此操作。您可以在設備上放置一個調試版本和符號,並在其上運行gdb。它完全不受支持,但我聽到它的作品。不知道是否有一個很好的教程。谷歌?

0

一種方法是使用AsyncSocket類,並將想要記錄的任何數據從iPhone傳遞到Mac上的基本主機應用程序,NSLog會收到它的任何內容。如果您遵循EchoServer應用程序,您應該能夠在幾分鐘內整合它

+0

這聽起來像是一個很好的前進方向。最後,我發現了一個不同的解決方案來滿足我的具體需求,但我認爲這會起作用。 – atobe 2010-02-03 12:36:11

1

最終,我以不同的方式解決了我的特定需求。我需要從iPhone的加速度計獲取數據到Adobe AIR(Flash)的原型應用程序中。

我在iPhone上使用這個應用程序,在它們中放入X,Y,Z部隊的UDP數據包。 http://code.google.com/p/accelerometer-simulator/wiki/Home

發現從這個博客文章,這可能是人們試圖做其他類似的事情感興趣。 http://ifiddling.blogspot.com/2009/01/dummy2.html

我使用Python腳本向Flash呈現服務器,抓取UDP加速計數據包,將它們嵌入AMF並將它們發送到Flash。 Flash使用套接字連接到此服務器並接收加速計數據。

幾個部分,但它很好地工作。