10

パスブックAPNのサーバー側の実装を作成しようとしていますが、サーバーはデバイスから提供されたプッシュトークンを好みません。トークンをAppleのサンドボックスサーバーに送信すると、「無効なトークン」応答が送信されます。トークンをAppleの本番サーバーに送信すると、リストから削除する必要があるトークンとしてフィードバックサービスにトークンが返されます。少なくとも、APN証明書とサーバーへの接続は正常に機能することを私は知っています。

私のiPhone4sは開発が可能になっています。APP IDは開発と本番の両方で有効になっており、デバイスはプロビジョニングプロファイルで有効になっています。デバイスから送信される文字列トークンに関して、32バイトのバイナリトークンデータが正しいことを確認しました。

私が持っている1つの質問は、デバイスの通帳がどのトークンを使用するか(開発と本番)をどのように決定するかということです。今はサンドボックス環境を使いたいのですが、どうやって「選択」するのかわかりません。

私はこれについて同様のトピックを見てきましたが、この問題に対する答えを持っている人はいないようです。私はこの作品を作るのにとても近いと感じているので、それは本当にイライラします!アドバイスをよろしくお願いします!

4

5 に答える 5

12

プルダクション証明書を使用してAPN実動サーバーに接続している場合は、実動トークンを使用する必要があります。

サンドボックスサーバーに通知を送信するときに「無効なトークン」を取得するという事実は、本番サーバーでのみ機能する本番トークンを使用していることを意味します。

トークンを本番サーバーに送信するとフィードバックサービスでトークンが返されるということは、証明書に一致するアプリケーション(サーバーが通知の送信に使用している)がデバイスからアンインストールされるか、プッシュ通知が無効になっていることを意味します。間違った証明書(デバイスからアンインストールされた別のアプリに属する​​証明書)を使用している可能性があります。

于 2013-02-17T20:28:42.337 に答える
6

Passbookプッシュの場合、App証明書ではなく、 PassTypeID証明書を使用して本番サーバーに接続する必要があります。

すべてのPassbookプッシュは本番サーバーを通過します。サンドボックスを使用する方法はありません。

また、Passbookプッシュの場合、プッシュペイロードは空である必要があります。送信したものはすべて無視されます。

于 2013-02-18T00:08:36.947 に答える
4

この問題の根本的な原因が見つかりました。秘密鍵が不良であることが原因です。この問題を解決するには、.pemを使用して.p12証明書を生成するだけです。.pemファイルを使用してp12ファイルを作成するには、以下の方法に従ってください。

手順

于 2016-04-11T11:10:09.460 に答える
2

上記のステートメントをテキスト形式で書き直して、コピー/貼り付けできるようにします。PushSharp 4.0.10は無効な証明書に関するエラーを返していましたが、元の公開鍵と秘密鍵でこれらのコマンドを実行すると、問題が解決します。

openssl x509 -in aps.cer -inform DER -out aps.pem -outform PEM
openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
openssl pkcs12 -export -inkey mykey.pem -in aps.pem -out iphone.p12
于 2016-10-04T22:43:08.863 に答える
0

私は1時間で立ち往生し、それを修正する方法を見つけました:xcode 11の場合:プロジェクト設定->歌と機能->(+)->背景->リモート通知にチェックマークを付けます。

于 2020-05-29T00:32:55.960 に答える