2012-07-09 118 views
8

我正在嘗試爲某些iOS應用程序啓動自動測試解決方案。我正在使用fruitstrap將已編譯的應用程序傳輸並安裝到已連接的iPhone上,但我正在努力尋找一種在安裝完成後自動啓動應用程序的方法。在繫留iPhone上啓動已安裝的應用程序

Fruitstrap有一個選項可以在GDB調試器中運行該應用程序,該應用程序可以工作。不幸的是,有一些測試用例需要在沒有附加調試器的情況下運行應用程序(特殊的崩潰處理)。我花了很多時間在MobileDevice Library上提供的資源上,這是Fruitstrap使用的資源,但我一直無法啓動任何應用程序啓動。

任何想法?

+0

這個設備是越獄嗎,或者你可以越獄它來解決這個問題?你可以使用Wifi通信,還是僅限於USB繫繩通信? – Nate 2012-07-10 08:48:09

+0

該設備不能越獄。 Wifi是一種選擇,但不是首選。 – BlueVoid 2012-07-10 15:51:48

回答

2

創建引導程序並使用URL Schemes可能是某些人的選擇,當然應該考慮,但它不符合我的要求。

我最終做的是用調試器通過fruitstrap啓動應用程序。我重新編譯fruitstrap以包括以下預備命令(在GDB_PREP_CMDS定義):

handle all noprint pass nostop 
continue 

手柄將通過信號到程序,以便定製信號處理程序(在這種情況下崩潰處理)將處理信號。 continue是我需要的,所以一旦調試器啓動,應用程序就會運行。

這裏有一個不幸的缺陷,遺憾的是我不知道解決方法。 GDB的ARM7版本沒有像達爾文版本那樣的'set dont_handle_bad_access'命令。出於某種原因傳遞EXC_BAD_ACCESS信號到程序不起作用,應用程序掛起。這很重要,因爲這是大多數崩潰的信號。但就目前而言,它是我能做的最好的事情,至少它處理的是未捕獲的異常。

1

我相信你可能正在尋找某種自定義URL方案。

看一看下面的文件,向下滾動到:實現自定義URL方案

http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html

您還可以在iOS版谷歌URL Schemes看到,如果你遇到類似的東西,你正在嘗試做。

讓我知道這是否幫助你。如果你有成功,聽聽會很有趣。

乾杯。

+0

URLSchemes是一個聰明的想法,但我不確定它對我來說是一個可行的解決方案。我需要能夠直接從設備綁定到的計算機啓動應用程序,並且我相信URLSchemes只能在設備上的其他應用程序中使用。 – BlueVoid 2012-07-16 16:59:17

2

您可以通過使用fruitstrap或Xcode來啓動一個「引導程序」程序,使您的目標應用程序通過邁克爾描述的自定義URL運行。

雖然引導程序將在調試器下運行,但URL調用的程序將正常運行。

+0

雖然這是一個有價值的想法,但不幸的是它不是我的選擇。我無法修改要啓動的應用程序的源代碼以包含URL處理程序。同時安裝引導程序以及要測試的應用程序的開銷太大。 – BlueVoid 2012-07-17 18:45:27

相關問題