web-dev-qa-db-ja.com

通知センターにiOSアプリケーションがない

問題:アプリが通知センターに表示されず、インストールが完了してregisterForRemoteNotificationTypes:経由でアプリがプッシュ通知に登録された直後に、プッシュ通知を受信できません。

詳細:

  • アプリは通常、デバイスが再起動された後、通知センターに表示され、その後すべてが正常に動作します。
  • APNのインストールと登録の直後にアプリが通知センターに表示されることがあります(まだ確認できませんが、そのような状況に遭遇しました)。
  • アプリは、ユーザーがログインするたび、およびユーザーがビットマスク(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)とregisterForRemoteNotificationTypesを使用してログアウトするたびに、メソッドUIRemoteNotificationTypeNoneを呼び出します。
  • enabledRemoteNotificationTypesは正しい値を返します。
  • 最初はログアウト時にメソッドunregisterForRemoteNotificationsを使用しましたが、これが問題を引き起こしている可能性があるという疑いがあるため、これをregisterForRemoteNotificationTypes:UIRemoteNotificationTypeNoneに変更しました。
  • この問題は、開発ビルドとアドホックビルドの両方で発生し、アプリがxcodeとiTunesのどちらを介してインストールされているかに関係なく発生します。

ご意見やアドバイスをいただければ幸いです。ありがとうございました!

13
e2l3n

これは私のデバイスのいくつかに起こっていました。 (通知センターに表示されず、プッシュを受信しません。)

それを修正することでなんとかしました:

  • アプリを削除する
  • デバイスからすべての関連プロファイルを削除します。 [設定]アプリ> [一般]> [プロファイル]をタップし、アプリに関連する各プロビジョニングプロファイルをタップして、[削除]をタップします。 iOS 8/9では、設定が存在しないため、XCode> Windows>デバイス>デバイスを選択>プロビジョニングプロファイルを表示...>次にプロファイルを削除します
  • スマートフォンをオフにしてから、再度オンにします。
  • 5分与える
  • アプリを再インストールすると、プロビジョニングプロファイルが自動的にインストールされます。
  • アプリを起動し、登録などを行います。
  • プッシュ通知をもう一度テストする

私たちの場合、すぐには機能しなかったので、数分待ってください。

16
just.jimmy

まあ、私もこの問題を抱えています。アプリケーションが以前のインストールでアンインストールする前にunregisterForRemoteNotificationsを使用していたことがわかりました。

また、アプリケーションが再度インストールされ、リモート通知に登録するためにログインすると、この問題が発生します。

最初のインストール(iOSデバイスのリセット後にインストール)でも発生しました。ログイン前にunregisterForRemoteNotificationsを使用し、ログイン操作で登録すると、この問題が発生します。

この問題が発生したため、iOSデバイスを再起動する必要があります。

UnregisterForRemoteNotificationsの場合、この問題を止めることはできませんでしたが、問題が発生する可能性を減らすことができます。メソッドは次のとおりです。

以前のインストールでデバイストークンがプロバイダーから削除されなかった場合は、ログイン前の現在のインストールでunregisterForRemoteNotificationsを使用します。それ以外の場合は、unregisterForRemoteNotificationsを使用しないでください。

0
Jennifer

Appleのドキュメント から、ログイン/ログアウトでのアプリの登録と登録解除にそれぞれ問題がある可能性があります。

アプリケーションは、起動するたびに登録し、そのプロバイダーに現在のトークンを与える必要があります。

登録解除については不明です。彼らはプログラミングガイドで登録解除について言及していません。ユーザーがログインしているかどうかに応じて、プッシュ通知を送信したり送信しなかったりすることで、アプリが登録解除されず、サーバーが処理する必要があります。これは私が過去にこれを行った方法であり、この問題を経験したことがないので、このアプローチがあなたにも有効かもしれません。

0
irodrigo17