1. ホーム
  2. ios

[解決済み] プッシュ通知で起動したアプリをデバッグする

2022-06-03 02:41:09

質問

現在、Push Notificationを受信するアプリを開発しています。これはすべてPHPページを通して100%動作しています。私のアプリが受信できるプッシュ通知には、いくつかの種類があります。PHP はこれを処理し、さまざまな情報のパケットをアプリに送信しますが、これらはすべて正常に受信されます。

しかし、ユーザーが通知を表示し、私のアプリが起動したとき、私は明らかに、ユーザーがアプリを手動で起動した場合とは異なるアクションを取りたいと思っています。私はこれをうまく動作させています...構造的に。

私のプッシュタイプの 1 つは、複数の異なるサーバーに複数の接続を作成し、データのやり取りを交渉する UIView を開くことになっています。この UIView は、たとえば、メイン メニューからトリガーされた場合は正常に動作しますが、プッシュ通知がこの UIView を表示するようトリガーされた場合、ソケット接続は期待どおりに動作しません。

今、私の質問は、ソケットについてではなく、よりそうです - どのようにこのような問題をデバッグしますか?私が言えることは (私は比較的新しいので)、アプリがプッシュ通知から起動した場合、その実行をデバッガー/コンソールなどにリンクする方法はありません。さまざまなサーバー間で前後に通信する多くの行があるため、UIAlertViews を使用してコードをデバッグしようとすると、非常に困難な時間がかかります。

何かアドバイスがあれば、非常に感謝します。

どのように解決するのですか?

Xcode < 4.0 (Xcode >= 4 については、以下の delirus さんの回答を参照) では、デバッガを通してアプリを起動するのではなく、アプリを起動した後にデバッガを添付するように Xcode を設定することができるようになりました。これにより、URL スキーム、ペーストボード、プッシュ通知など、アプリケーションの起動状態に応じて変化するものをデバッグできるようになります。

  1. Xcode の [ソース] バーを見ると、[ターゲット] の下に [実行可能ファイル] があります。
  2. 実行可能ファイルの中にあるアプリのインスペクタを表示させます。
  3. インスペクタの「デバッグ」タブタブをクリックします。
  4. "Start executable after starting debugger" のチェックをはずします。
  5. "次の起動/プッシュ通知を待つ"をチェックします。

これで、アプリを起動する代わりに Xcode からデバッグをクリックすると、アプリの起動を待機していることを示すウィンドウが表示されます。その後、携帯電話でアプリを通常通り起動すると、Xcode がそれにアタッチされます。