はじめに
iOSでリモートpush通知を実装する際、注意する点があります。
それはinvalidトークン(使用不可となったトークン)の削除です。
これをしないと、push通知が届かないといった事が起きます。
また、invalidトークンを偽装(テストの為)する際も注意しなければいけません。
invalidトークンの抽出
こちらのサイトを参考にトークン一覧にpush通知を送った後、
何番目にinvalidなトークンがあったかという情報を抽出することができます。
http://knowledge.sakura.ad.jp/tech/1721/
これにより、後でまとめてinvalidトークンを削除する感じです。
invalidトークン作成
適当なトークンを設定するとアプリ(サーバ)が落ちます。
Appleは「トークンの長さをハードコードしてはいけません。」と言っています。
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html
試してみた結果文字列の長さを変更しなければ良いようです。
なので端末から送られてきた実際のトークンの文字を変更します。(これもハードコードな気がする)
-
test1invalid1token
-> アプリ落ちる -
e215bfbffa75476a9965b7279540fae2f0c53c2174438cd3a513b87d20e5bec8
-> 実際のトークン(通知発行される) -
e215bfbffa75476a9965b7279540fae2f0c53c2174438cd3a513b87d20e5bec7
-> invalidトークン扱い(実際のトークンの最後の文字を変更)