0

Meine Push-Benachrichtigungen funktionierten vor etwa einem Monat. Ich arbeite in Produktion Push-Benachrichtigungen. Ich habe an meinem Projekt eine Weile wegen anderer Verpflichtungen nicht gearbeitet, und als ich zurückkam, konnte ich keine Push-Benachrichtigung mehr senden.Fehlerbehebung Apple Push Notification Services

Nachdem ein Protokoll erstellen, die bis zu meiner Produktion SNS verbunden ist, ich habe dies bemerkt:

"Lieferung": { "deliveryId": "d3675e8a-45b0-58db-9b79-11e284987bbb" , "Ziel": "arn: aws: sns: us-east-1: 445291524102: Endpunkt/APNS/für freie Zeit/587673f1-cf48-3b3e-9e74-04d39f8affc3", "providerResponse": „NotificationErrorResponse (command = 8, status = InvalidToken, ID = 1, verursachen = null)“ "dwellTimeMs": 319, "Versuche": 1, "token": "55d7b18b064eecad93fb666818651d4f33b612487ee810b092f081cef41d4e43", „status“: 8 },

Nach der Untersuchung der Angelegenheit begann ich meine Anmeldeinformationen, um zu versuchen zu überprüfen, um zu sehen, ob ich in den Server bekommen kann.

Ich hat versucht, den Apfel docs verwendet, die mich zu diesem Befehl führten:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert BusyTimeProductionKey.pem -debug -showcerts -CAfile ProductionAPS.pem 

Und ich verwenden Raywenderlich.com Tutorial es eine Weile zurück und verwenden diesen Befehl zur Einrichtung erneut zu überprüfen:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert ProductionAPS.pem -key BusyTimeProductionKey.pem 

Beide, die spucken eine große Menge an Ausgangs aus und gab mir diese Linie, um anzuzeigen, dass die Verbindung in Ordnung war: SSL-Handshake 3160 Bytes und geschriebenen Bytes 2319 gelesen hat

Allerdings habe ich auch bemerkt, diese Zeile über alles, der aussah, arbeitete:

verify error:num=20:unable to get local issuer certificate 
verify return:0 

Ist die Fehlerzeile etwas mit diesem Fehler zu tun haben? Wenn nicht, wie sollte ich dieses Problem beheben? Bitte beachten Sie, dass ich einen Debugging-Punkt in xcode gesetzt habe, manuell den Geräte-Token für ein Gerät, das ich gerade testet, erfasst und in die SNS-Konsole eingefügt habe, um zu isolieren, dass es sich nicht um ein fehlerhaftes Token handelt. Vielen Dank für Ihre Zeit und Rücksicht. Ich habe auch eine Theorie, dass ich nicht das richtige Provisioning-Profil verwenden könnte. Müsste ich überprüfen, ob ich das Profil für die Bereitstellung verwende? Wenn ja, wie würde ich das tun?

Antwort

0

Stellt sich heraus, dass Sns nicht das Problem war, wie ich in meiner Frage auch gesagt habe, es war der APNS. Ich habe meine Anwendung von xcode heruntergeladen, von der ich denke, dass sie mir nicht den richtigen Token für die Produktion liefert. Ich muss es immer noch versuchen, aber als ich zu meinem letzten Build zurückkehrte, der im App Store ist, hat es angefangen zu arbeiten. Als ich zu meiner aktuellsten Version auf xcode ging, hörte es auf zu arbeiten. Ich denke, die Generierung des Geräte-Tokens unterscheidet sich im App Store und nicht im App Store.

1

Wenn Sie versuchen, die App direkt von XCODE auszuführen, müssen Sie den APNS_SANDBOX-Endpunkt verwenden, nicht den APNS-Endpunkt wie in Ihrem obigen Beispiel. Sobald Sie Ihre App (über TestFlight oder AppStore) "bereitstellen", funktioniert der Endpunkt ohne Sandbox (APNS).