2015-09-01 123 views
1

我目前正在運行iOS的設備上對Qt應用程序進行自動測試。到目前爲止,我可以安裝並運行這些應用程序,但我無法讀取它們的輸出。據我瞭解,讀取this問題時,Qt使用gdb服務器std::outstd::err的輸出傳遞給Qt Creator,但我無法理解如何使用這些信息。除了捆綁標識符外,我只能獲得應用程序的文件.ipa。我有權訪問應用程序代碼,但我不能更改它。在命令行中讀取ios設備上的qDebug輸出應用程序

我使用libmobiledevicelibraries來處理所有任務,如連接,安裝和執行設備。

總結:我想讀我的控制檯上顯示,像這將是我的創造者的「應用程序輸出」窗口的Qt編寫的應用程序的調試輸出。

+0

在構建適用於iOS,我也直接在XCode中運行qmake生成的項目文件。所以這個問題可能會更通用......可能是,如何使用iOS在XCode中自動執行測試,或者在XCode for iOS中重定向std err std。 – phyatt

+0

可能最簡單的方法是將所有調試輸出作爲槽調用排入調試接口對象。該對象將存在於輔助線程中,並通過網絡連接發送調試輸出。 –

+0

@phyatt在XCode中顯示輸出結果並不是我所需要的。我想要的是從命令行訪問所有提示,因爲我開發了一些python軟件來處理所有基礎設施。 –

回答

0

現在,半年後,我發現了一個既優雅又穩定的解決方案。

我安裝了ios-deploy工具使用節點:

npm install -g ios-deploy 

利用這一點,我能夠安裝應用程序,並聽取它的輸出通過:

ios-deploy --debug --bundle path/to/my.app 

我收到完整qDebugstd::outstd::err輸出完全正常。

要卸載應用程序,我只是簡單地添加了或--uninstall_only選項:

ios-deploy --debug --bundle path/to/my.app --uninstall_only 

使用該解決方案的應用程序能夠可靠地啓動,而不會在鎖定屏幕轟然

0

我發現使用imobiledevice庫的方式。通過調用Idevicedebug -u <uuid> run de.foo.app我能夠執行該應用程序。 qDebug輸出被提示爲std::out

由於應用程序在鎖定屏幕啓動時崩潰,我必須首先檢查idevicediagnostics ioreg IOPower的輸出以檢查顯示器是否處於空閒狀態。

相關問題