iPhone アプリにプッシュ通知の受信を追加しました。すべてがテスト/サンドボックス環境で機能し、アプリからトークン ID を取得し、サーバーからプッシュ通知を送信できました。
しかし、アプリが承認され、Appstore から出てきたので、空のプッシュ トークン/通知 ID がサーバーに送信されました。すでに 600 以上あります... エンド ユーザーはアプリで通知の受信を承認するポップアップを取得することに注意してください。アプリは承認後に空のトークンをサーバーに送信するだけです。そのため、おそらく空のトークンが APNS サーバーによって配布されます。
次の問題は、これがおそらくアプリ ストアのビルドに使用したプロビジョニング プロファイルに「プッシュ通知」資格がないことが原因であることを示しています: iOS ディストリビューション プロビジョニング プロファイルでプッシュ通知が有効になっているかどうかを確認するにはどうすればよいですか?
エンタイトルメントの欠落は、Apple のプロビジョニング プロタル Web サイトのバグによるものでしたが、次の記事 http://developer.apple.com/library/mac/#documentationに記載されているように、「新しいプロファイルをダウンロードする前に既存のプロファイルを変更してください」 /NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html
これで、.mobileprovision ファイルに正しい権利が含まれるようになりました。
<key>Entitlements</key>
<dict>
..
<key>aps-environment</key>
<string>production</string>
..
そのため、アプリを再構築してストアに追加しています。そして、プッシュ通知を受け取ることを望んでいます。
上記が他の人に役立つことを願っています。しかし、ここで私の実際の質問に移ります。ストアから次の更新をインストールするときに、現在のバージョンを既にダウンロードしている 600 人以上のユーザーに対しても、新しいプッシュ トークンの受信を開始しますか? それとも、アプリに初期コードを追加する必要がありますか? registerForRemoteNotifications メソッドは現在、アプリケーションの起動時にのみ呼び出されます。プッシュ トークン ID が空 ('') から実際のトークンに変更された場合にもトリガーされますか? もちろん、新しい AppStore の承認をさらに (短い) 1 週間待ちたくはありませんが、その後になって初めて、一部のユーザーに対してプッシュ通知がまだ機能していないことがわかります。そこの専門家が教えてくれることを願っています。
注: MonoTouch で開発された iPhone アプリを使用し、(古い) APNS-Sharp ライブラリを使用してサーバーから通知を送信していますが、それらの詳細はこの問題に関連しているとは思いません。