Für die Anwendung im App Store wurde keine gültige Berechtigungszeichenfolge "aps-environment" gefunden

103

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

Jessiah
quelle
Hier wird es signiert und hochgeladen -> i.stack.imgur.com/AziCI.png Build-Einstellungen -> i.stack.imgur.com/j2TFG.png
Jessiah

Antworten:

282

Ich behebe dieses Problem, indem ich die Push-Benachrichtigungsfunktion aktiviere.

Klicken Sie auf .xcodeproj -> Funktionen -> Push-Benachrichtigung aktivieren

wei
quelle
15
In XCode 8 wurde in diesem Abschnitt ein Fehler angezeigt, der besagt, dass eine Berechtigungsdatei hinzugefügt werden musste. Ich habe darauf geklickt, um es zu korrigieren und dann hat es gut funktioniert.
Pellet
Erst vor kurzem aufgetaucht, als mit der Entwicklung in Xcode 8 begonnen wurde, wurde dies behoben. Vielen Dank!
Kody R.
Ich habe zuvor an Xcode 7.3 gearbeitet, mich aber plötzlich nicht mehr bei Xcode 8 registriert, aber dies hat mein Problem gelöst, indem die Push-Benachrichtigungsfunktion aktiviert wurde.
Vinod Rathod
Apple beschließt, diese Option irgendwo tief in Xcode 8.1 auszublenden. Bitte lassen Sie mich wissen, ob jemand es finden kann.
Thomas Sebastian
Ich habe die Option "Push-Benachrichtigung" in der Funktionsliste nicht erhalten. Dies hatte damit zu tun, dass XCode mein Bereitstellungsprofil automatisch generierte (ich bin neu in iOS dev, daher kann ich mich irren ...). Ich musste mich in meinem Entwicklerkonto anmelden und manuell ein Bereitstellungsprofil für meine App erstellen, bevor Push-Benachrichtigungen in der Funktionsliste angezeigt wurden. Durch die Aktivierung wurde dieses Problem behoben.
Max Mumford
103

Ich habe dieses Problem folgendermaßen behoben:

  • Gehen Sie zu Xcode "Einstellungen"
  • Gehen Sie zur Registerkarte "Konten"
  • Wählen Sie meine Apple ID aus und klicken Sie auf "Details anzeigen".
  • Klicken Sie zum Aktualisieren auf den Pfeil in der unteren linken Ecke
  • Klicken Sie auf "Fertig"

Und versuche es erneut!

Quelle:

Erwan
quelle
6
dann sollten Sie das richtige Bereitstellungsprofil in Build-Einstellung
Hashem Aboonajmi
2
In meinem Fall musste ich die Bereitstellungsprofile im Entwicklungscenter neu generieren. Laden Sie dann alle Profile und Zertifikate erneut über Xcode> Einstellungen> Konten> Ihre Apple ID> Schaltfläche Details anzeigen in der rechten Ecke> Schaltfläche Alle herunterladen herunter. Danach sollte es wieder funktionieren.
Blackjacx
2
Ich finde es traurig, dass es so viele Pannen beim Push- und Deployment-Prozess gibt. Die einzige Möglichkeit, dies zu tolerieren, besteht darin, alles zu 100% manuell zu erledigen und zu wissen, was Xcode versucht, und Schlüsselbundidentitäten und Bereitstellungsprofile im Dateisystem und über das iPhone-Konfigurationsdienstprogramm zu verwalten.
Tom Pace
57

Sie müssen Ziel -> Funktionen -> Push-Benachrichtigung aktivieren. Ich habe dieses Problem mit Xcode 8 festgestellt.Geben Sie hier die Bildbeschreibung ein

Ram G.
quelle
18

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.

Fahim Parkar
quelle
Das von mir verwendete Profil wurde erstellt, nachdem ich das Zertifikat für die Produktions-Push-API erstellt habe. Kann ich etwas tun, um zu bestätigen, dass es fehlt oder die apns-Informationen enthält?
Jessiah
@Jessiah: Nein. Es ist, als müssten wir den Schritten von Apple folgen.
Fahim Parkar
6

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.

  1. Navigieren Sie zum Apple Developer Member Center und melden Sie sich an.
  2. Navigieren Sie zu Zertifikaten, Kennungen und Profilen.
  3. Wählen Sie im Dropdown-Menü in der oberen linken Ecke iOS, tvOS, watchOS aus, falls dies noch nicht ausgewählt ist, und navigieren Sie dann zu Bereitstellungsprofile> Alle.
  4. Klicken Sie auf die Schaltfläche +, um ein neues Bereitstellungsprofil zu erstellen.
  5. Wählen Sie iOS App Development als Bereitstellungsprofiltyp aus und klicken Sie auf Weiter.
  6. Wählen Sie im Dropdown-Menü die App-ID aus, die Sie verwenden möchten, und klicken Sie dann auf Weiter.
  7. Wählen Sie das iOS-Entwicklungszertifikat der App-ID aus, die Sie im vorherigen Schritt ausgewählt haben, und klicken Sie dann auf Weiter.
  8. Wählen Sie die iOS-Geräte aus, die Sie in das Bereitstellungsprofil aufnehmen möchten, und klicken Sie dann auf Weiter. Stellen Sie sicher, dass Sie alle Geräte auswählen, die Sie für Ihre Tests verwenden möchten.
  9. Geben Sie einen Namen für dieses Bereitstellungsprofil ein (z. B. Firebase Sample App Development Profile) und klicken Sie dann auf Generieren.
  10. Klicken Sie auf Herunterladen, um das Bereitstellungsprofil auf Ihrem Mac zu speichern.
  11. Doppelklicken Sie auf die Bereitstellungsprofildatei, um sie zu installieren.

2. Aktivieren Sie die Push-Benachrichtigungsfunktionen

  1. Gehen Sie zum Projekteditor aus dem offiziellen Handbuch Geben Sie hier die Bildbeschreibung ein
  2. Aktivieren Sie im Abschnitt Funktionen die Push-Benachrichtigung Geben Sie hier die Bildbeschreibung ein
Micaball
quelle
4

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

  • Ich habe ein neues Bereitstellungsprofil für die App-ID erstellt
  • fügte es in xcode hinzu
  • Projekt Gehe zu Xcode "Einstellungen"
  • Gehen Sie zur Registerkarte "Konten". Wählen Sie meine Apple ID aus und klicken Sie auf "Details anzeigen".
  • Wählen Sie Ihr Bereitstellungsprofil aus
  • Klicken Sie zum Aktualisieren auf den Pfeil in der unteren linken Ecke
  • Klicken Sie auf "Fertig"

und jetzt führen Sie das Projekt definitiv aus, es wird funktionieren.

Venky Chittala
quelle
3

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.

FrankByte.com
quelle
1

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?

Alex Ryltsov
quelle
-1

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.

Desen GUO
quelle