ユーザがプッシュ通知を拒否すると、didFailToRegisterForRemoteNotificationsWithErrorによってエラーが発生します。この場合、NSErrorオブジェクトのコードが何であるかを知っている人はいませんか?didFailToRegisterForRemoteNotificationsWithError:ユーザーがエラーを拒否しましたか?
答えて
あなたの最初の声明(常に)は当てはまるとは思わない。アプリが有効なプロビジョニングプロファイルで正しく署名されている場合、registerForRemoteNotificationTypes:
を呼び出すと、設定アプリのユーザーの通知の選択に関係なくapplication:didRegisterForRemoteNotificationsWithDeviceToken:
になります。私の経験から、application:didFailToRegisterForRemoteNotificationsWithError:
が呼び出される唯一の時間は、不適切に署名されたアプリケーションのためだった。問題のエラーは、 "アプリケーションの有効なAP環境授権が見つかりませんでした"と述べました。
この質問は古いですが、@ Jerredの回答のほとんどに同意しますが、私はとにかく更新された回答を投稿すると考えました。
スレッドの主な質問に対する回答はです。です。
アプリケーション:didFailToRegisterForRemoteNotificationsWithError:が不正なプロビジョニングプロファイルで署名されたときに呼び出されます。また
、
アプリケーション:didRegisterForRemoteNotificationsWithDeviceToken:ユーザーがアプリの(設定アプリで)通知センターでバッジ、バナー/アラートまたはサウンド設定のAT-少なくとも一方を有効にする場合にのみが呼び出されます。
ユーザーがプッシュを送信する権限を付与されたいかなるネットワーク接続とユーザーが存在しない場合にはプッシュ通知
- のいずれかを呼び出すことはありませんシナリオがあります。通知。
- ユーザーが設定アプリで通知センターからアプリのプッシュ通知を無効にしたとき。
これは、1つの部分を除いて良い記事です:「APNSのための環境は別々です:**サンドボックス(開発とアドホックビルド用)**とプロダクション。それぞれに独自の証明書があり、プロビジョニング手順を二つ。"。 Ad-hocビルドは、実際にはAPNSのAPNSに当てはまりました。「オペレーティングシステムは、開発ビルドのためのサンドボックス環境への永続的な接続を確立し、アドホックおよびディストリビューションビルドは本番環境に接続します。 https://developer.apple.com/library/ios/technotes/tn2265/_indexhtml#// apple_ref/doc/uid/DTS40010376-CH1-TNTAG42 –
この記事ではベストプラクティスとして説明した内容を、現在は利用できなくなっているため、更新することは素晴らしいことです。 – leolobato
@leolobatoと合意すると、記事へのリンクはもう有効ではありません。 – Zorayr
私の経験上、didFailToRegisterForRemoteNotificationsWithError:
メソッドは、より重大なケースのために予約されているため、通知の許可要求ダイアログが表示されないことがあります。私が知っているケースでは、プッシュ通知(例えば、シミュレータ)をサポートしていないデバイス上で実行されているアプリケーションや、アプリケーションバイナリでのaps-environmentエンタイトルメントの誤った設定が含まれます。
- 1. アクセスを拒否したファイルを拒否しました。エラー
- 2. エラーを拒否(接続が拒否されました)
- 3. エラー:ユーザー 'www-data' @ 'localhost'のアクセスが拒否されました
- 4. エラー1045(28000)ユーザー 'root' @ 'localhost'のアクセスが拒否されました
- 5. CreateProcessエラー= 5、アクセスが拒否されました:CreateProcessエラー= 5、アクセスが拒否されました
- 6. クライアントエラー(アクセス拒否)が発生しました:アクセスが拒否されました
- 7. エラー:ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードはNOを使用)
- 8. エラー:ユーザー '' @ 'localhost'(パスワード:NOを使用)のアクセスが拒否されました
- 9. エラー:(1045)ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワード:NOを使用)
- 10. java.lang.VerifyError:Verifierがクラスを拒否しました
- 11. ActiveXObject.Save()メソッドが許可を拒否しました。エラー
- 12. 注Apiがベアラトークンを拒否しました。エラー401
- 13. Hadoop Connectionがエラーを拒否しました
- 14. エラー102(net :: ERR_CONNECTION_REFUSED):サーバーが接続を拒否しました。
- 15. Postgresql接続がWindows 10でエラーを拒否しました
- 16. Wordpressのエラーが拒否して拒否する
- 17. Python SMTPlibエラー111接続が拒否されましたか?
- 18. AndroidStudioエラー:アクセスが拒否されましたか?
- 19. Gae/cloudsqlエラー:ユーザー 'root' @ 'cloudsqlproxyのアクセスが拒否されました@ cloudsqlproxy
- 20. MySQLエラー1045「ユーザー 'user' @ 'localhost'(パスワードは:YES)のアクセスが拒否されました」
- 21. RailsプロジェクトMySQL DB接続エラー - rootユーザーのアクセスが拒否されました
- 22. Sqoopインポートエラー:アクセス権が拒否された場合でも、ユーザー 'root' @ 'localhost'のアクセスが拒否されました
- 23. ログインエラー1698(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました
- 24. ユーザー 'username' @ '%'のPDOアクセスが拒否されました
- 25. Laravel - ユーザー 'homestead' @ 'localhostのアクセスが拒否されました
- 26. ユーザー(NodeJSとMySQL)のアクセスが拒否されました
- 27. ユーザー 'homestead' @ 'localhost'のアクセスが拒否されました
- 28. 警告:mysql_query():ユーザーのアクセスが拒否されました
- 29. PHP-LARAVELのユーザー 'homestead' @ 'localhost'のアクセスが拒否されました
- 30. SELECTコマンドがユーザーに拒否されました
あなたは実際にJerredに答えを与えるべきです - 彼は正しい答えです。私はちょうど私の会社の顧客のためにこれを再確認しなければなりませんでした。エンタープライズアプリ(プロダクションプッシュサービスを使用)をダウンロードし、尋ねられたときにすべての通知を許可せず、アプリにトークンがまだ残っています。 [設定]で有効にし、アプリを再起動して[設定]で無効にして、アプリを再起動します。トークンはすべて返されます。 –