Ich habe Push-Benachrichtigungen in meiner App eingerichtet. Ich versuche festzustellen, ob das Geräte-Token, das ich von APNS in der application:didRegisterForRemoteNotificationsWithDeviceToken:
-Methode erhalten habe, aus der Sandbox oder der Entwicklungsumgebung stammt. Wenn ich unterscheiden kann, in welcher Umgebung das Token initialisiert wurde, kann ich meinem Server mitteilen, an welche Umgebung die Push-Benachrichtigung gesendet werden soll.Ermitteln, ob die App mit der Sandbox APNS oder der Produktionsumgebung kommuniziert
Ich habe versucht, mit dem DEBUG
Makro, um dies zu bestimmen, aber ich habe ein seltsames Verhalten mit diesem gesehen und nicht darauf vertrauen, dass es 100% korrekt ist.
#ifdef DEBUG
BOOL isProd = YES;
#else
BOOL isProd = NO;
#endif
Idealerweise würde ich in der Lage sein, die aps-environment
Berechtigung (Wert Entwicklung oder Produktion) in Code zu untersuchen, aber ich bin nicht sicher, ob dies überhaupt möglich ist.
Wie können Sie feststellen, ob Ihre App mit der APNS-Sandbox oder Produktionsumgebungen kommuniziert? Ich gehe davon aus, dass der Server dies in erster Linie wissen muss. Bitte korrigieren Sie mich, wenn diese Annahme falsch ist.
Bearbeitet: Apples Dokumentation auf Provider Communication with APNS Details der Unterschied zwischen der Kommunikation mit der Sandbox und Produktion. Die Dokumentation enthält jedoch keine Informationen darüber, wie die Registrierung des Tokens (von der iOS-Client-App) und die Kommunikation mit dem Server konsistent sein sollen.
Die Bibliothek ist ein wenig veraltet, aber sie hat gut funktioniert. Umgebung '(ersetzen Sie' "get-task-allow" 'mit' "aps-environment" 'in @tcurdts Beispiel, und vergleichen Sie es nicht als bool) –
@AlbertBori können Sie bitte ein Problem auf, was ist veraltet? – tcurdt
Sicher Sache! Hier gehts: https://github.com/tcurdt/TCMobileProvision/issues/1 –