5

プッシュ通知を使用するアプリを開発しており、iOS 5.1.1 のデバイスでテストしています。アプリの初回実行時にユーザーがプッシュ通知を受け取るシナリオをテストしたいと思います。このダイアログは、registerForRemoteNotificationTypes を初めて呼び出したときに表示されますが、アプリを最初から再インストールしても、二度と表示されません。ダイアログが再び表示されるように設定をクリアするにはどうすればよいですか?

同じ質問が以前に投稿されましたが、コメントに記載されているように、回答は iOS 5 以降では機能しません。

Apple のドキュメントには、アプリをアンインストールして時計をいじって、アプリが 1 日アンインストールされたように見せるように書かれていますが、これは iOS5 では機能しません。

別の回答では、一般 -> リセット -> すべてのコンテンツと設定を消去 - これを試しましたが、デバイスがフリーズし、電源を入れ直さなければならなくなりました。いずれにせよ、これはテストには実用的ではない手間のかかるソリューションです。

/private/var/mobile/Library/RemoteNotification/Clients.plist からアプリのエントリを削除することを別の回答が提案しましたが、このファイルは iOS5 には存在しません。

iOS5でこれを達成する方法はありますか?

4

2 に答える 2

5

デバイスがジェイルブレイクされている場合に機能する解決策を見つけました。

  • /var/mobile/Library/SpringBoard/applicationstate.plistプロパティ リスト ビューアーでファイルを開くには、iFile などのアプリを使用します。
  • アプリのバンドル識別子を見つけてキーを削除しますSBRemoteNotificationClient
  • SpringBoard を再起動します。デバイスを再起動するか、デバイスに SSH で接続して実行するkillall SpringBoardか、Respring アプリを使用します。

次回アプリを実行すると、通知許可ダイアログがもう一度表示されます。

iOS 5.1.1 でこれをテストしました。

于 2012-10-26T18:23:14.270 に答える
0

iOS5とiOS6のコードパスにそれほど違いがない場合、最も簡単なオプションは、おそらくiOS 6でその特定の動作をテストすることです。iOS5で取得するコールバックは、問題にならないように十分に類似している必要があります。

または、アプリのバンドルIDを変更します。少し面倒で(以前は、バンドルIDの変更に気付くためにXcodeを再起動する必要がありました)、便利なワイルドカードプロビジョニングプロファイルが必要になります。

于 2012-10-26T19:56:26.923 に答える