プッシュ通知機能を備えたアプリを開発しています。ユーザーとのやり取りのあらゆる可能性をチェックするために、初回起動時にユーザーがアプリのプッシュ通知の有効化を拒否した場合にアプリをテストしたいと思います。
ただし、ダイアログ ( によって開始されるregisterForRemoteNotificationTypes
) は、アプリごとに 1 回だけ表示されます。アプリの iPhone OS のメモリをリセットするにはどうすればよいですか。アプリを削除して再インストールしても効果はありません。
ベストアンサー1
テクニカルノート TN2265: プッシュ通知のトラブルシューティング
プッシュ対応アプリが初めてプッシュ通知を登録すると、iOS はユーザーにそのアプリの通知を受信するかどうかを尋ねます。ユーザーがこの警告に応答すると、デバイスが復元されるか、アプリが少なくとも 1 日アンインストールされない限り、警告は再度表示されません。
アプリの初回実行をシミュレートする場合は、アプリを 1 日間アンインストールしたままにしておきます。システム クロックを 1 日以上進めて、デバイスを完全にオフにしてから再度オンにすることで、実際に 1 日待たずに後者を実現できます。
アップデート:以下のコメントに記載されているように、この解決策は iOS 5.1 以降機能しなくなりました。Apple にバグを報告して、ドキュメントを更新してもらうことをお勧めします。現在の解決策は、デバイスのコンテンツと設定をリセットすることのようです。
アップデート:テクニカルノートには、iOS 7 以降で正しく機能する新しい手順が追加されました。
- デバイスからアプリを削除します。
- デバイスを完全にオフにしてから、再度オンにします。
- 「設定」>「一般」>「日付と時刻」に移動し、日付を 1 日以上先に設定します。
- デバイスの電源を完全にオフにしてから、再度オンにします。
iOS 9以降のアップデート
アプリを削除して再インストールするだけで、通知ステータスがリセットされますnotDetermined
(つまり、プロンプトが表示されます)。
以下のGomfuciusによる回答に感謝します。https://stackoverflow.com/a/33247900/704803