Ich versuche, eine serverseitige Implementierung für den APN-Sparbuch zu erstellen, aber der Server mag das Push-Token nicht, das das Gerät mir gibt. Wenn ich das Token an den Sandbox-Server von Apple sende, sendet es mir eine "ungültige Token" -Antwort. Wenn ich das Token an den Produktionsserver von Apple sende, wird das Token im Feedback-Dienst als eines zurückgegeben, das ich aus meiner Liste entfernen sollte. Zumindest weiß ich, dass die APN-Zertifikate und die Verbindung zum Server gut funktionieren.
Mein iPhone 4s wurde für die Entwicklung aktiviert. Die APP ID ist sowohl für die Entwicklung als auch für die Produktion aktiviert und das Gerät ist in den Bereitstellungsprofilen aktiviert. Ich habe überprüft, dass die 32-Byte-Binär-Token-Daten in Bezug auf das Zeichenfolge-Token korrekt sind, das vom Gerät gesendet wird.
Eine Frage, die ich habe, ist, wie legt das Sparbuch im Gerät fest, welches Token zu verwenden ist (Entwicklung vs. Produktion)? Ich würde es vorziehen, die Sandbox-Umgebung jetzt zu verwenden, aber ich bin mir nicht sicher, wie ich sie "auswählen" soll.
Ich habe ähnliche Themen für dieses Thema gesehen, aber keine scheint die Antwort für dieses Problem zu haben. Es ist wirklich frustrierend, da ich fühle, dass ich so nahe daran bin, das zu schaffen! Vielen Dank im Voraus für einen Rat!
Wenn Sie ein Produktionszertifikat zum Herstellen einer Verbindung zum APN-Produktionsserver verwenden, müssen Sie ein Produktionstoken verwenden.
Die Tatsache, dass Sie beim Senden der Benachrichtigung an den Sandbox-Server ein "ungültiges Token" erhalten, bedeutet, dass Sie ein Produktionstoken verwenden, das nur mit dem Produktionsserver funktioniert.
Die Tatsache, dass das Senden des Tokens an den Produktionsserver das Token im Feedbackdienst zurückgibt, bedeutet, dass die Anwendung, die dem Zertifikat entspricht (das der Server zum Senden der Benachrichtigung verwendet), entweder vom Gerät deinstalliert wird oder Push-Benachrichtigungen deaktiviert sind . Vielleicht verwenden Sie ein falsches Zertifikat (möglicherweise ein Zertifikat, das zu einer anderen App gehört, die vom Gerät deinstalliert wurde).
Für Passbook-Push-Vorgänge müssen Sie eine Verbindung zum Produktionsserver mit dem ID des Pass-Typs , nicht mit dem App-Zertifikat herstellen.
Alle Passbook-Push-Vorgänge werden über den Produktionsserver ausgeführt, es gibt keine Möglichkeit, die Sandbox zu verwenden.
Außerdem sollte die Push-Nutzlast für einen Passbook-Push leer sein. Alles, was Sie senden, wird ignoriert.
Überschreiben Sie die obigen Anweisungen im Textformat, damit Sie sie kopieren / einfügen können. Das war der Trick für mich, PushSharp 4.0.10 gab einen Fehler über ein ungültiges Zertifikat zurück, aber die Ausführung dieser Befehle auf den ursprünglichen öffentlichen und privaten Schlüsseln löst das Problem:
%Vor%Tags und Links push-notification ios apple-push-notifications passbook