2016-05-24 6 views
3

アップルプッシュ通知フィードバックサービスのテスト方法テストは以下れるように私がやったこと

  • を私はそれらを処理するための通知と実装メカニズムを押して有効に例のアプリを作りました。

  • 私はcurlで私のアプリにサイレントプッシュ通知のテストを行っていましたが、それはかなりうまくいきます。

    curl -v -d '{"aps":{"content-available":1}}' --cert "/Users/me/Desktop/mycert.pem": ""これをテストしています。 -H "のAPN-トピック:com.domain.name" アップルからの回答として--http2 https://api.development.push.apple.com/3/device/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 、私はいつも見ています次:

    < HTTP/2.0 200

    < apns-id:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX

    公式ドキュメントからTable 6-4によると、罰金と期待されるようですどちら:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html

  • 今、私は私のデバイスからアプリを削除して、私はちょっと私は、ステータスコード410との情報を得て開始することを望んで同じ要求を再試行それはThe device token is no longer active for the topicです。どのようにしても、それは起こりません。私はいつも200状態コードを取得しており、プッシュトークンはまだ利用可能です。

削除後1〜1.5時間で、私はまだ回答として200を取得しています。

Appleがプッシュトークンリストを更新する頻度を知っていますか?最終的には410が始まると予想されますか?また、生産現場以外のアプリをテストしている間は、410のステータス(一般的にはInstant Feedback)がテスト可能ですか?

回答ありがとうございます。

乾杯

+0

ねえ、あなたはこの問題を解決しましたか?私はまったく同じ問題に直面しているhttp://stackoverflow.com/questions/39290613/apns-http2-api-not-returning-status-410-after-uninstalling-app – user1546652

+0

実際に私はこれをテストする方法を見つけました。明日の答えを書くでしょう。私が忘れた場合は、私にpingしてください。乾杯。 – uerceg

+0

ちょうどこの兄弟についての答えを覚えておいてください。このapns http2は、410を返さなければ私を怖がらせています。 – user1546652

答えて

4

わかりましたので、私が発見したものから、アップルからInstant Feedbackサービスがうまく働くとかなり速いアンインストールを検出することができているようです。サンドボックスサービスでこれらのことを適切にテストする方法には小さなトリックがありました。

あなたがあなたのデバイス、アプリ上でローカルにテストしているアプリはそのプロビジョニングプロファイル(ベンダー)から携帯電話にインストールされている唯一の1であることを確認した場合、私は私の質問で問題と直面したものがなります遭遇した。何らかの理由で、プロビジョニングプロファイルからインストールされた電話機で唯一のものだったアプリケーションをアンインストールしても、Appleは常に200で応答しています。

次のような処理が必要です。テストしている別のバンドルIDを持つ新しいダミーのアプリケーションを作成しますが、これもプロビジョニングプロファイルから取得し、プッシュ通知を有効にしてデバイスにインストールします。だから、あなたはあなたが作った2つのアプリを持っています - あなたはInstant Feedbackサービスを開発してテストしています。もう1つはちょうどそこに座って何もしないちょっとした "ゾンビ"アプリです。

この後、テストアプリをアンインストールして、静かなプッシュ通知を送信しようとすると、Appleはstatus code 410と期待どおりに応答します。

ダミーの方法ですが、何らかの理由でそれがテスト中であるべきである方法です。プロダクションでの動作は期待どおりで、iOSデバイスにインストールされている同じベンダーのダミー(または他の)アプリを必要とする必要はありません。

+0

@ user1546652これがあなたにとってうまくいくかどうかは分かります。 – uerceg

+0

おっぱい..今すぐ立ち上がり、あなたの答えに拍手する..あなたの写真の帽子としてすごい.. ..おかげでたくさんの仲間。私は、開発の代わりに生産/流通証明書と暫定プロファイルを使用し、最終的に私とアポンは平和パイプを喫煙しました。異なるバンドルIDと同じ暫定プロファイルを持つダミーアプリケーションをインストールするソリューションは、開発者アカウントで行うことはできません。開発資格情報を使用する場合は、別のデバイスにインストールする必要があります。お金?? – user1546652

+0

それは、実際には開発モードでも私にとってはかなりうまく機能しています。 Apple Developer Portalに2つのアプリケーションID(com.example.aとcom.example.b)を作成しました。ここで、両方のシステムでプッシュ通知を有効にしました。それから、私はプッシュ通知のための開発SSL証明書を作成して、それらをダウンロードして - >私のMacに保存しました。次に、2つの新しいXcodeプロジェクトを作成しました。ここで、上記のアプリIDを持つ2つの新しいiOSアプリを作成しました。電話の両方にインストールされ、最初にアンインストールされ、最初のアプリのトークンでhttp2要求が行われました。そしてそれは働いた。 410. – uerceg

関連する問題