パスをインストールしています。サーバーに登録されているデバイスにインストールすると、デバイスIDはUrbanAirshipサービスにも登録されます。
ここまでは順調ですね。
アーバンエアシップのダッシュボードからプッシュメッセージを送信したり、カーリングしたり、サーバーにプッシュを送信させたりしようとすると、デバイスでメッセージが受信されません。パスキットの更新をプッシュするときに考慮しなければならない特別なことはありますか?
パスをインストールしています。サーバーに登録されているデバイスにインストールすると、デバイスIDはUrbanAirshipサービスにも登録されます。
ここまでは順調ですね。
アーバンエアシップのダッシュボードからプッシュメッセージを送信したり、カーリングしたり、サーバーにプッシュを送信させたりしようとすると、デバイスでメッセージが受信されません。パスキットの更新をプッシュするときに考慮しなければならない特別なことはありますか?
たくさんいじくり回した後、私はこれを機能させました。解決策は直感的ではありません。
アーバンエアシップで作成した「アプリケーション」がAppleの本番サーバーにプッシュされていることを確認してください。Passbookは、開発サーバーへのPassbookプッシュを認識しません(これは、アプリケーションの作成中にのみ実行できます。後で変更することはできません)。
標準のプッシュ通知に使用する証明書ではなく、パスIDの署名に使用する証明書をアップロードしてください。証明書にはPassIDが埋め込まれているため、これは重要です。
Appleの言うことにもかかわらず、ペイロードに何かを含める必要があります。私の知る限り、Urban Airshipは空のペイロードをプッシュしないため、これが必要です。ペイロードの内容は重要ではありません。デバイスは何かを取得することだけを気にするので、更新が必要であることがわかります。たとえば、これは機能します(python):
airship = urbanairship.Airship(_UrbanAirshipPassbookKey、_UrbanAirshipPassbookMasterSecret)airship.push({'aps':{'alert':'Go。'}}、device_tokens = tokens)
アーバンエアシップは、将来的にこれを変更することを願っています。
バックエンドをより細かく制御できるようになったときに、それを理解しました。
Server response was malformed (Wrong type object for key lastUpdated in response dictionary. Expected NSString but found __NSCFNumber.)
だから今それは都市の飛行船で動作します