このような質問がたくさん聞かれたに違いないことは知っています。
ケース - Distribution AdHoc プロビジョニング プロファイルでアプリを共同署名しました。メッセージをプッシュするために、プロダクション プッシュ SSL 証明書 p12 をサーバーにインストールしました。
メッセージはサーバーから正常にプッシュされていますが、デバイスで受信されていません。
さらに掘り下げた後、サンドボックスとゲートウェイのデバイストークンは異なる必要があることを読みました。APNs によって返されたデバイス トークンが aps-environment 文字列値に依存している場合は意味があります。そのため、通知からアプリの登録を解除しました。
[[UIApplication sharedApplication] unregisterFromRemoteNotifications];
上記のコードを実装してアプリを実行しました。その後、コードを削除し、アプリを APNs に再度登録しました。無事登録できましたが、受け取ったデバイストークンは変わらずそのままでした。
サーバーからメッセージをプッシュしました。そして、デバイスのコンソール ログを確認しました。(アドホック配布プロファイルでアプリに署名し、コンソール ログを確認しました)。ログに次の情報を受け取りました:-
apsd[301] <APSCourier: 0x119f60>: Connecting courier stream using DNS TXT record at sandbox.push.apple.com and port TCP 5223
apsd[301] <Warning>: Fall back to alternate interface was disabled
apsd[301] <Warning>: Wake schedule completed for 2012-07-20 18:45:58 GMT (took 0.070 seconds)
apsd[301] <Warning>: Interface manager: Binding stream to WWAN context kCTDataConnectionServiceTypeInternet
apsd[301] <Warning>: <APSCourier: 0x119f60>: Connecting to courier 10-courier.sandbox.push.apple.com.
サーバーから送信されたすべてのメッセージはデバイスのコンソールに記録されましたが、ポップアップすることはありませんでした。OSがそれらをドロップすると思います。
さて、質問ですが、
トークンが変更されなかったのはなぜですか?
AdHoc ディストリビューション プロビジョニング プロファイルでビルドするときに、アプリが gateway.push.apple.com を試行する必要があるときに、sandbox.push.apple.com を呼び出そうとするのはなぜですか?
また、3G 接続を使用しているときにポート 5223 を使用したのはなぜですか?
プッシュ ポップアップが表示されないのはなぜですか?
私はアイデアが枯渇しています。