このタイプの状況が発生した場合、私のアプリは現在、以前のアプリケーション ユーザー アカウントに関連付けられているプッシュ通知を受信しています。
- プレーヤーがアプリをインストールし、「bob」として登録します
- Web サービスに登録されたボブのデバイス トークン
- プレーヤーはアプリを再インストールし、「phil」として登録します (同じデバイス上)
- Web サービスに登録された phil のデバイス トークン
プレーヤーが「phil」としてログインしている場合でも、「bob」と「phil」に関連付けられたアカウントのプッシュ通知を引き続き受け取ります。
UDID を使用していた場合、デバイスごとに 1 つのデバイス トークンのみが登録されるようにすることができたので、プレーヤーの古い Web サービス アカウント「bob」から UDID とデバイス トークンを削除して、デバイスごとにアクティブなアカウントを 1 つだけ確保しました。これは、プレーヤーが「phil」として登録し、Web サーバーがプレーヤーが同じ UDID で新しいアカウントを登録したことを確認し、その UDID を持つ古いアカウント (つまり「bob」) から UDID とデバイス トークンを削除した場合に発生します。アカウント)。誰かが (同じデバイスまたは新しいデバイスで) そのアカウントに再度ログインするまで、bob アカウントにプッシュ通知が送信されることはありません。
ただし、CFUDIDCreate を使用する場合、インストールごとに変更される可能性があるため、これはうまく機能しません。
現在ログインしているユーザーに対してのみプッシュ通知が受信されるようにするにはどうすればよいですか? 別の言い方をすれば、Web サーバーがデバイスごとに 1 つのデバイス トークンのみを保存するようにするにはどうすればよいでしょうか?