現在、プッシュ通知を受信するアプリを開発しています。これはすべてPHPページで動作します。アプリが受信できるプッシュ通知にはいくつかの種類があります。PHPはこれを処理し、私のアプリへの情報パケットはすべて正常に受信されます。
ただし、ユーザーが通知を「表示」してアプリを起動すると、ユーザーがアプリを手動で起動した場合とは異なるアクションを実行したいことは明らかです。さらに、プッシュ通知タイプに応じて異なるアクションを実行します。これはうまく機能しています...構造的に。
私のプッシュタイプの1つは、複数の異なるサーバーに複数の接続を確立し、データをやり取りするUIViewを開くことになっています。このUIViewは、たとえばメインメニューからトリガーされると正常に機能しますが、プッシュ通知がこのUIViewの表示をトリガーすると、ソケット接続は期待どおりに機能しません。
さて、私の質問はソケットに関するものではなく、もっとそうです-このような問題をどのようにデバッグしますか?アプリがプッシュ通知から起動したときに私が知ることができることから(私は比較的新しい)、その実行をデバッガ/コンソール/などにリンクする方法はありません...を使用してコードをデバッグしようとするのは非常に困難ですUIAlertViews。さまざまなサーバー間で多くの通信ラインが存在するため。
あなたが私のために持っているアドバイスは大歓迎です。
XCode <4.0(XCode> = 4の場合、以下のdelirusの回答を参照)では、デバッガーを介してアプリを起動する代わりに、起動後にアプリにデバッガーをアタッチするようにXcodeを構成できるようになりました。これにより、URLスキーム、ペーストボード、プッシュ通知など、アプリケーションの起動状態に基づいて変化するものをデバッグできます。
これで、アプリを起動する代わりにXcodeからデバッグをクリックすると、アプリが起動するのを待っていることを示すウィンドウが表示されます。その後、通常どおり電話でアプリを起動し、Xcodeがそれに接続します。
XCode 10、9、8、7、6の場合
通知、カスタムURLから起動するとき、またはアプリのアイコンをタッチすることでデバッグできるようになりました。
私はプッシュ通知を使用していないため、プッシュ通知の正確な動作がわかりません。ただし、可能であれば、プログラムのメインメソッドに通知が投稿されたふりをするか、applicationDidFinishLaunching:メソッド内からapplication:didFinishLaunchingWithOptions:UIApplicationDelegateメソッドを呼び出して、プッシュ通知の受信を模倣しようとします。
HTH-歓声、大安
Xcode 6の場合:
Debug
> Attach to Process
>アプリを選ぶ