Also habe ich diese App namens Dripper, die ich vor ungefähr einem Monat veröffentlicht habe, und dann ein Update vor ein paar Tagen. Das Update fügte Push-Benachrichtigungen und ein paar kleine Verbesserungen hinzu. Ich habe es mit der Sandbox-API unter Verwendung des Entwicklungsprofils getestet und die Dinge haben großartig funktioniert. Dann habe ich die Dinge auf die Produktions-APN umgestellt und sie auf Testflug geschoben, wieder haben die Dinge perfekt funktioniert. Nachdem ich das Update auf den Markt gebracht und ausgeführt hatte, bemerkte ich, dass ich keine neuen Push-Registrierungen auf dem Server erhielt. Ich habe mir die Konsolenprotokolle für das Gerät angesehen und Folgendes festgestellt:
4. Dezember 17:55:15 Ina-touch-it coffco [1210]: Registrieren für Remote-Benachrichtigungen
4. Dezember 17:55:15 Ina-touch-it SpringBoard [52]: Es wurde keine gültige Berechtigungszeichenfolge 'aps-environment' für die Anwendung gefunden 'Dripper': (null). Benachrichtigungen werden nicht zugestellt.
4. Dezember 17:55:15 Ina-touch-it coffco [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}
Ich bin etwas verwirrt, weil ich dachte, dass die Produktions-API zwischen Ad-hoc- und App Store-Builds gleich funktionieren würde.
Hier ist meine App-ID und ihre Berechtigungen -> http://i.stack.imgur.com/uf4pB.png
Hier ist das Bereitstellungsprofil für den Apps Store -> http://i.stack.imgur.com/AYOV5.png
Antworten:
Ich behebe dieses Problem, indem ich die Push-Benachrichtigungsfunktion aktiviere.
Klicken Sie auf .xcodeproj -> Funktionen -> Push-Benachrichtigung aktivieren
quelle
Ich habe dieses Problem folgendermaßen behoben:
Und versuche es erneut!
Quelle:
quelle
Sie müssen Ziel -> Funktionen -> Push-Benachrichtigung aktivieren. Ich habe dieses Problem mit Xcode 8 festgestellt.
quelle
Solche Probleme sind darauf zurückzuführen, dass das aktuelle Bereitstellungsprofil keine APNS-Informationen enthält, da das Bereitstellungsprofil VOR dem Erstellen des APNS-Zertifikats erstellt wird.
Um das Problem zu lösen, erstellen Sie daher ein neues Bereitstellungsprofil und wählen Sie das Bereitstellungsprofil in Xcode aus. Dann sind Sie fertig.
Wenn Sie Push hinzufügen, haben Sie meines Erachtens auch die Zertifikate im Schlüsselbund aktualisiert.
quelle
In Bezug auf Xcode 9 sind einige der Antworten veraltet oder unvollständig, um dieses spezielle Problem zu lösen.
Hier waren die Schritte für mich:
1. Erstellen Sie das Bereitstellungsprofil
( FCM ist keine Voraussetzung für Push-Benachrichtigungen, aber ihre Anleitungen sind erstaunlich klar, hier ist der Link )
Um Ihre App während der Entwicklung zu testen, benötigen Sie ein Bereitstellungsprofil für die Entwicklung, um Ihre Geräte zum Ausführen einer App zu autorisieren, die noch nicht im App Store veröffentlicht wurde.
2. Aktivieren Sie die Push-Benachrichtigungsfunktionen
quelle
Ich hatte das gleiche Problem mit iOS 8.0 und höheren Versionen. Ich habe das Gerätetoken nicht erhalten und habe den Fehler "Keine gültige Berechtigungszeichenfolge für die 'Aps-Umgebung' für die Anwendung gefunden" ausgegeben.
Ich habe es mit den folgenden Schritten behoben
und jetzt führen Sie das Projekt definitiv aus, es wird funktionieren.
quelle
Aus irgendeinem Grund funktionierte Wei's Lösung bei mir nicht. Beim Klicken auf Fix-Berechtigungen hat Xcode zwei Dateien generiert und es funktionierte immer noch nicht. Die generierten Berechtigungsdateien waren tatsächlich leer.
Dies wurde (anscheinend) dadurch verursacht, dass PRODUCT_NAME des Projekts ziemlich lang war und Leerzeichen und "ä" - und "ö" -Buchstaben enthielt. Nachdem es in eine Kurzversion mit nur englischen Buchstaben geändert wurde, funktionierte das Update von Wei korrekt.
quelle
Es hat eine Weile gedauert, bis ich herausgefunden habe, was keinen gültigen Aps-Environment-Berechtigungsfehler verursacht hat. Das Problem war, dass das XCode-Projekt zwei .entitlements-Dateien enthielt. Eine ist Plattform / ios //. Berechtigungen und eine andere ist Plattform / ios // Ressourcen / .entitlements und die entsprechenden Berechtigungen sind in der ersteren Datei nur vorhanden, während XCode für die Verwendung der letzteren konfiguriert ist. Ich habe die letztere Datei manuell aktualisiert und alles begann zu funktionieren. Eine andere Möglichkeit, dies zu beheben, besteht darin, zu ändern, welche .entitlements von XCode verwendet werden. Dies kann unter Build-Einstellungen -> Signieren -> Codesignatur-Berechtigungskonfigurationsparameter erfolgen.
Ich bin nicht sicher, warum es in XCode zwei .entitlements-Dateien gibt. Könnte es sein, dass das Cordova Push Plugin das zweite erstellt hat (ich entwickle eine hybride Cordova Mobile App)? Und wo ist der richtige Speicherort für die .entitlements-Datei?
quelle
Ich habe dieses Problem festgestellt und es mit der ersten Lösung behoben.
Ich bin jedoch einmal gescheitert, weil zwei Apple-Konten angemeldet waren. Nachdem einer entfernt wurde, funktionierte alles.
quelle