9

一部の iOS アプリケーション用の自動テスト ソリューションを立ち上げようと取り組んでいます。Fruitstrap を使用して、コンパイル済みのアプリを接続された iPhone に転送してインストールしていますが、インストールの完了後にアプリケーションを自動的に起動する方法を見つけるのに苦労しています。

Fruitstrap には、機能する GDB デバッガーでアプリを実行するオプションがあります。残念ながら、デバッガーを接続せずにアプリを実行する必要があるテスト ケースがいくつかあります (特別なクラッシュ処理)。Fruitstrap が使用する MobileDevice Library で利用可能なリソースをいじるのにかなりの時間を費やしましたが、アプリを起動しても何も改善されませんでした。

何か案は?

4

3 に答える 3

2

マイケルが説明したように、fruitstrap または Xcode を使用して「ブートストラップ」プログラムを開始し、ターゲット アプリケーションをカスタム URL 経由で実行することで、必要なことを行うことができます。

デバッガーの下でブートストラップ プログラムが実行されている間、URL によって呼び出されたプログラムは正常に実行されます。

于 2012-07-17T07:22:31.467 に答える
2

ブートストラップ プログラムを作成し、URL スキームを使用することは、一部の人にとってはオプションであり、確かに検討する必要がありますが、私の要件には合いません。

私がやったことは、フルーツストラップを介してデバッガーでアプリを起動することでした。次の prep コマンドを含めるように fruittrap を再コンパイルしました (GDB_PREP_CMDS 定義内)。

handle all noprint pass nostop
continue

カスタム シグナル ハンドラ (この場合はクラッシュ ハンドラ) がシグナルを処理するように、ハンドルはシグナルをプログラムに渡します。継続は、デバッガーの起動後にアプリが実際に実行されるようにするために必要なものでした。

これには残念な欠点が 1 つあります。残念ながら、これに対する回避策はわかりません。GDB の ARM7 バージョンには、darwin バージョンのような「set dont_handle_bad_access」コマンドがありません。何らかの理由で EXC_BAD_ACCESS シグナルをプログラムに渡しても機能せず、アプリがハングします。これはほとんどのクラッシュのシグナルであるため、重要です。しかし、現状では、私ができる最善のことであり、少なくともキャッチされていない例外を処理しています。

于 2012-07-17T18:55:13.417 に答える
1

ある種のカスタムURLスキームを探しているのではないかと思います。

次のドキュメントを見て、下にスクロールしてください:カスタムURLスキームの実装

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

iOSでURLスキームをグーグルで検索して、自分がやろうとしていることに似たものに出くわしたかどうかを確認することもできます。

これが役に立ったかどうか教えてください。成功したかどうか聞いてみると面白いでしょう。

乾杯。

于 2012-07-16T07:51:27.613 に答える