5

カスタム URL から起動できる iPhone アプリを作成しています。だから、私はオーバーライドします -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

変更をテストするには、シミュレーターでアプリを実行し、終了して Safari を起動する必要があります。次に、アドレス バーにカスタム URL を入力してアプリを起動します。

しかし、起動するたびにアプリがクラッシュします。理由を突き止めようとしていますが、ブレークポイントを設定して (XCode ではなく) ホーム画面からアプリを起動すると、接続していないようです。

handleOpenURL メッセージに NSLog ステートメントを入れてみましたが、コンソールに出力されません。

UIAlertViews を作成できると思いますが、そうです。シミュレータでデバッグ セッションに接続する他の方法はありますか?

4

5 に答える 5

14

Xcode 4 では、ターゲットのスキームを編集できます。[実行] セクションの [情報] タブで、[MyApp.app の起動を待つ] オプションを選択できます。

ここに画像の説明を入力

これにより、デバッガーは次回アプリが起動するまで待機し、新しいプロセスを作成するのではなく、そのプロセスにアタッチします。これにより、Safari からアプリを手動で起動し、デバッガーを使用できるようになります。

于 2011-04-19T14:25:50.473 に答える
7

Console.appを開きます(Utilitiesフォルダー内)。ログメッセージがそこに表示されます。

于 2009-05-21T18:30:33.567 に答える
1

hadleOpenURL の最初の行として次を追加します。

[NSThread sleepForTimeInterval:30.0] の次の行にブレークポイントを置きます。

アプリケーションが呼び出された後、30 秒以内に XCode に移動し、メニューから [Run]/[Attach to Process] を選択して、リストからアプリケーション名を選択します。デバッガーはブレークポイントで停止する必要があります。

終了したら、sleepForTimeInterval を削除することを忘れないでください。

于 2011-09-16T16:40:01.817 に答える
1

私はこれを試していませんが、コードにインラインでブレークポイント命令を追加するのはどうですか:

#if TARGET_CPU_ARM == 1
#define breakpoint() __asm__ volatile ("bkpt 0")
#else   // !ARM - assume INTEL. Everything else will break
#define breakpoint() __asm__ volatile ("int3");
#endif
于 2009-05-21T21:01:02.873 に答える
1

AppDelegate の機能を実行する単体テストを作成できますか?

于 2009-05-21T18:36:00.420 に答える