5

タイトルには、APNSが組み込まれたアプリがあります。サンドボックスモードでは完全に動作します。しかし、生産モードでは、それは悲惨に失敗します。iPhoneプッシュ通知はサンドボックスでは動作しますが、プロダクションモードでは動作しません

APNS-Serviceからエラーが戻ってこないので、サーバーに正しい証明書があるようです。すべてがうまくいくようです。私はAldo ArmientoがApnsPHPを使用しています。これには、APNS-Serverからの結果を吐き出す機能が組み込まれています。ストアのアプリでサンドボックスを使用しようとすると、(サンドボックスとプロダクションのトークンが異なるため)無効トークンエラーが発生します。店舗のアプリで生産証明書を使用すると、エラーは発生しません。何も、nada、zilch - それは通知を送ったようだ。悲しいかな、それは私の電話には届きません。

明らかに、証明書は大丈夫です。それはサーバーに接続し、通知を送信し、エラーなしですべてのパスを渡します(最初は間違った証明書を持っていましたので、正しくない場合はどうなりますか)。 ?

[編集]ここに私は戻ってAPNS-サービスから何を得るのです。ここで

Tue, 03 Jan 2012 03:13:55 +0100 ApnsPHP[13049]: INFO: Trying ssl://gateway.push.apple.com:2195... 
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Connected to ssl://gateway.push.apple.com:2195. 
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Sending messages queue, run #1: 1 message(s) left in queue. 
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: STATUS: Sending message ID 1 [custom identifier: Message-Badge-000] (1/3): 107 bytes. 
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Disconnected. 

答えて

10

は、あなたがあなたの最後で確認することができます3例である: -

  1. は、あなたが使用していることを確認しますあなたのサーバー側の正しい生産証明書。プロダクションとサンドボックス用に2つの異なる証明書を作成する必要があるためです。サーバー上で正しい証明書を使用していることを確認してください。

  2. 秒は、サーバー側で正しいゲートウェイとポート番号を使用していることを確認できます。プロダクションとサンドボックスのゲートウェイは異なるため、プロダクションに使用されるゲートウェイは、 - gateway.push.apple.comです。サーバーで使用している証明書のサーバーで正しいパスワードを使用している場合もあります。

  3. 3番目に、デバイスの通知が有効かどうかを確認できます。あなたはあなたのiPhoneでもそれを有効にする必要があります。それがあなたのデバイス上にあることを確認してください。

あなたが役に立ったら教えてください。

+0

ありがとう - しかし、私はすべてをチェックしました。すべては、それがそうであるように設定されています。そして言及したように、私はプッシュサービスから何のエラーも得られません、それはメッセージが通り抜けたように現れます...非常に奇妙です。 – Swissdude

+0

プロダクション証明書をもう一度作成してサーバーに配置しようとしましたか? –

+1

私に恥があります:) それは証明書でした。私は別の会社のために開発し、元の開発者は残しました - 彼の証明書はどういうわけか、まだアクティブであるようです(私はそれを私と置き換えました)。したがって、証明書は有効であり、アプリに対して有効でした。しかしバイナリは私の秘密鍵でコンパイルされていました。 ご協力いただきありがとうございます。 – Swissdude

1

は要するにhttps://stackoverflow.com/a/11623162/496222

に答えを参照してください。両方のSSL証明書は、別のPEMファイルであることを確認してください。サンドボックスとプロダクション証明書の両方でPEMファイルを1つ作成すると、どちらの環境も失敗する可能性があります。

0

あなたのアプリケーションIDがプッシュ通知を有効にしているかどうかを確認してください。

7

私にとっては、私はこれを数日間苦労しています。適切なプロダクション証明書とキーを使用し、正しいゲートウェイを使用して開発中のiPhoneにメッセージを送信すると、サンドボックスモードで正常に送信されましたが、プロダクションモードでは失敗しました。それはまた、デバイスのトークンの2種類があるため、テストiPhoneデバイスのトークンはサンドボックストークンであり、プロダクションモードでは使用できません。プロダクションAPNをテストするには、別のデバイスのトークンを使用する方がよいでしょう。

詳細な説明はhere

最も一般的な問題は、無効なデバイストークンです。トークンがサンドボックス 環境からのものである場合(開発ビルドを社内でテストする場合など)、生産プッシュサービスに を送信することはできません。各プッシュ環境は、同じデバイスまたはコンピュータの別のトークンを発行します( )。間違った環境にデバイストークンを送信した場合、プッシュ サービスは無効なトークンとして通知し、通知を破棄します。

+0

この男はそれを死んでしまった..この情報を共有してくれてありがとう。 – bottus

0

これが私の問題を解決しました。kGGLInstanceIDAPNSServerTypeSandboxOptionの正しい値を設定してください。 開発モードが「はい」に設定され、生産モードが「いいえ」の場合。

+0

私はこれがGoogle Cloud Messagingのようだと思いますか? https://developers.google.com/cloud-messaging/ios/client – Nick

関連する問題