Mam zainstalowaną przepustkę. Po zainstalowaniu na urządzeniu, które rejestruje się na moim serwerze, identyfikator urządzenia jest również zarejestrowany w usługach Urban Airship.

Na razie w porządku.

Kiedy próbuję wysłać wiadomość push z deski rozdzielczej sterowca miejskiego, curlingu lub pozwolić serwerowi wysłać push, urządzenie nigdy nie odbiera jej. Czy jest coś specjalnego, o czym muszę pomyśleć, przesyłając aktualizacje passkitów?

4
Erik 27 wrzesień 2012, 18:23

2 odpowiedzi

Najlepsza odpowiedź

Zorientowałem się, kiedy mam większą kontrolę nad backendem.

 Server response was malformed (Wrong type object for key lastUpdated in response dictionary. Expected NSString but found __NSCFNumber.)

Więc teraz działa ze sterowcem miejskim

0
Erik 2 październik 2012, 10:59

Po wielu majsterkowaniu udało mi się to zadziałać. Rozwiązanie nie jest intuicyjne:

  1. Upewnij się, że „aplikacja”, którą tworzysz w Urban Airship, trafia na serwery produkcyjne Apple. Passbook nie rozpoznaje wypychań passbook na serwer deweloperski (możesz to zrobić tylko podczas tworzenia aplikacji - nie możesz jej później modyfikować).

  2. Upewnij się, że przesyłasz certyfikat, którego używasz do podpisywania identyfikatorów Pass, a NIE ten, którego używasz do standardowych powiadomień push. Jest to ważne, ponieważ certyfikat ma wbudowany PassID.

  3. Pomimo tego, co mówi Apple, musisz dołączyć coś do ładunku. O ile wiem, jest to potrzebne, ponieważ Urban Sterowiec nie wypchnie pustego ładunku. Zawartość ładunku nie ma znaczenia. Urządzenie troszczy się tylko o to, że otrzymuje coś, więc wie, że potrzebna jest aktualizacja. Na przykład to działa (python):

    sterowiec = urbanairship.Airship(_UrbanAirshipPassbookKey, _UrbanAirshipPassbookMasterSecret) airship.push({'aps': {'alert': 'Go.'}}, device_tokens=tokens)

Miejmy nadzieję, że Urban Sterowiec zmieni to w przyszłości.

3
Shaun Budhram 29 wrzesień 2012, 10:06