web-dev-qa-db-ja.com

iOSアプリケーションを削除すると、プッシュ通知の状態が残ります

Xcodeを使用してiOSアプリケーションを初めてインストールするときに、プッシュ通知を有効にするかどうかをiPhoneが尋ねます。

通知を送信でき、バッジには送信した番号が表示されます。

IPhoneからアプリケーションを削除してXcodeで再構築し、iPhoneに再インストールします(Xcodeを使用)。

  • デバイスは、プッシュを有効にするかどうかを尋ねません。
  • バッジはそこにあり、覚えている最後の番号です。

新しいアプリケーション(IPAをインストール)で同じアプリケーションを試しましたが、許可を求められました。

デバイスにアプリケーションを完全に忘れさせるにはどうすればよいですか?

ありがとう

29
Majid Laissi

システム時間を2日先に設定し、デバイスを再起動して、システム時間を現在に戻すという回避策があります。 iOSは、アプリケーションごとに1日1回だけプッシュの許可を求めるように設計されています。

IOSでのプッシュ通知のアクセス許可アラートのリセットプッシュ対応のアプリが初めてプッシュ通知に登録されると、iOSはユーザーにそのアプリの通知を受信するかどうかを尋ねます。ユーザーがこのアラートに応答すると、デバイスが復元されるか、アプリが少なくとも1日アンインストールされない限り、再び表示されることはありません。

アプリの初回実行をシミュレートする場合は、アプリを1日アンインストールしたままにすることができます。システムクロックを1日以上進め、デバイスを完全にオフにしてから再びオンにすることで、実際に1日待つことなく後者を実現できます。

http://developer.Apple.com/library/ios/#technotes/tn2265/_index.html

27
Justin

AppleのドキュメントからiOS 7以降用に更新:

IOS 7以降では、プッシュ対応アプリが初めてプッシュ通知を登録するときに、iOSはユーザーにそのアプリの通知を受信するかどうかを尋ねます。ユーザーがこのアラートに応答すると、デバイスが復元されるか、アプリが少なくとも1日アンインストールされない限り、再び表示されることはありません。

アプリの初回実行をシミュレートする場合は、アプリを1日アンインストールしたままにすることができます。次の手順に従うことで、実際に1日待つことなく後者を実現できます。

  1. デバイスからアプリを削除します。
  2. デバイスを完全にオフにして、再びオンにします。
  3. [設定]> [一般]> [日付と時刻]に移動し、1日以上前の日付を設定します。
  4. デバイスをもう一度完全にオフにして、再びオンにします。

IOS 5およびiOS6の場合:

バックアップからデバイスを復元して、プッシュ通知の権限アラートをリセットします(r。11450187)。これを効率的に行う手順は次のとおりです。

  1. Xcode Organizerを使用して、デバイスにアプリをインストールします。重要なのは、アプリを実行せずに初めてインストールすることです。
  2. ITunesを使用してデバイスをバックアップします。
  3. アプリを実行します。プッシュ通知の許可アラートが表示されます。
  4. プッシュ通知のアクセス許可アラートをリセットする場合は、最初の手順で作成したバックアップからデバイスを復元します。

https://developer.Apple.com/library/content/technotes/tn2265/_index.html

38
Mike

私はあなたと同じ船に乗っていました。私が最も役に立ったのは、バンドルIDを少し変更することでした。

例:バンドルIDはcom.company.appです。プッシュ通知の有効化をテストする必要がある場合は、識別子をcom.company.app1に変更します。新しいアプリとしてインストールされ、新しいプッシュ通知のアクセス許可が設定されます。

テストが完了したら、必ず元に戻してください。

5
Jake Alewel

まず、そのiOSには関係がないため、Push settings,badgeの値を覚えておくと、Push notificationを取得できません。他にも問題があると思います。はい、iOSはアプリのPush settingsbadgeの値を記憶しています。デバイスに最初にインストールするときにプッシュ確認を求めます。 setApplicationIconBadgeNumber:を呼び出すと、badge値をリセットできます

Push settingsをリセットする場合は、デバイスのすべてのsettingをリセットすることで実行できます。

2
saadnib

アプリの初期化コードがある場合(たとえば、ドキュメントフォルダーに使用可能なdbがないときにdbをコピー/初期化しているため、再インストールされていることがわかっている場合)、バッジカウントをゼロにリセットできます。

繰り返しになりますが、ユーザーがパッケージからdbファイルを手動で削除した場合、またはアプリの初期化設定がない場合、これは失敗する可能性があります。

0
palaniraja

次の手順に従って、これらの手順でアプリの初回実行を刺激します。

1)。デバイスからアプリを削除します。

2)。デバイスを完全にオフにして、再びオンにします。

3)。 [設定]> [一般]> [日付と時刻]に移動し、1日以上前の日付を設定します。

4)。デバイスをもう一度完全にオフにして、再びオンにします。

0
Abhinav Singh