Ich versuche, meine App so zu konfigurieren, dass Push-Benachrichtigungen unterstützt werden, erhalte jedoch weiterhin den folgenden Fehler: Fehler beim Abrufen des Tokens, Fehler: Fehler Domain = NSCocoaErrorDomain Code = 3000 "Keine gültige Berechtigungszeichenfolge" aps-environment "für Anwendung" UserInfo = 0x1f818fc0 { NSLocalizedDescription = Keine gültige Berechtigungszeichenfolge 'aps-environment' für Anwendung gefunden}
- Ich habe meine App aktiviert, um Push-Benachrichtigungen zu unterstützen (derzeit nur für die Entwicklung).
- Ich habe das Bereitstellungsprofil erstellt, nachdem die Push-Benachrichtigungen aktiviert wurden.
- Meine Bundle-ID ist dieselbe wie im Profil.
- In meiner Profildatei gibt es eine Zeichenfolge: aps-environment
- Ich habe sichergestellt, dass sowohl im Projekt als auch im Ziel im Abschnitt "Identität der Codesignatur" ALLE Werte als mein Bereitstellungsprofil ausgewählt sind.
Noch mehr Ideen? Vielen Dank.
Antworten:
In meinem Fall das Zeug in meinem Bereitstellungsprofil:
War anders als das Material in der App, das tatsächlich erstellt wurde (Sie können herausfinden, wo es erstellt wurde, indem Sie auf die Registerkarte "Protokolle" von Xcode schauen).
Dies stimmte , obwohl der Hinweistext "Derzeit übereinstimmt" unter "Code Signing Identity" das richtige Bereitstellungsprofil anzeigte - seltsam, oder? Um eine seltsame Geschichte seltsamer zu machen, wurde beim Ausführen das richtige Bereitstellungsprofil auf dem Gerät installiert (Einstellungen-> Allgemein-> Profile), was mich zu der Annahme veranlasste, dass das Bereitstellungsprofil richtig war - aber es wurde auf eine Platzhalter-ID zurückgegriffen als die App tatsächlich gestartet wurde .
Der Hinweis war der Unterschied in der Ausgabe dieser beiden Befehle:
Y2X6Z7Z2GR .com.dca. spolsky-ios vs P5GM95Q9VV .com.dca. spolsky
Als ich das fettgedruckte Teil übereinstimmen ließ, wurde das kursiv geschriebene Teil so geändert, dass es automatisch übereinstimmt. Darüber hinaus stimmten die Ausgabe von Sicherheit und Codesign überein und es gab keinen APS-Berechtigungsfehler mehr.
Ich vermute hier, dass XCode eine Übereinstimmung im Wildcard-Stil für meine Nicht-Wildcard-ID verwendet hat. ("spolsky" ist immerhin fast "spolsky-ios"), und dies erklärt die Ausgabe "Aktuelle Übereinstimmungen". Da jedoch etwas in der Build-Kette strenger ist, wird während des Builds auf eine tatsächliche Platzhalter-ID zurückgegriffen .
quelle
Das Problem ist 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, um den Fehler zu beheben.
quelle
Ich hatte das gleiche Problem, nachdem Push-Benachrichtigungen bereits auf meinem Gerät funktionierten. Es schien, als hätte Xcode etwas falsch zwischengespeichert, so dass das Aktualisieren mein Problem behoben hat:
quelle
Ich habe diesen Fehler erhalten und kein neues Bereitstellungsprofil erstellt. hat einen neuen erstellt und musste dann xCode neu starten, funktioniert aber jetzt!
quelle
Beachten Sie, dass die Bundle-ID in Groß- und Kleinschreibung mit dem Bereitstellungsprofil übereinstimmen muss . Ich hatte so etwas wie com.FirstLast.appname, wenn es com.firstlast.appname hätte sein sollen. Nun, das hat mich eine ganze Weile beschäftigt.
quelle
Ich habe dieses Problem behoben, indem ich die Push-Benachrichtigungsfunktion aktiviert habe.
Wählen Sie Projekt> Ziel> Funktionen> Push-Benachrichtigungen aktivieren
quelle
Wenn dieses Problem nach dem Upgrade auf Xcode 8 plötzlich auftritt, wird im Funktionsbildschirm möglicherweise eine Warnung angezeigt, mit der Sie dies automatisch beheben können:
Wählen Sie Projekt> Ziel> Funktionen> Push-Benachrichtigungen aktivieren
quelle
Produkt-> Sauber hat es für mich getan. Hoffentlich macht es das für jemand anderen.
quelle
Ich bin darauf in einem möglicherweise nicht häufigen Anwendungsfall gestoßen. Ich arbeite mit Xcode 6 und iOS 8. Ich habe eine Reihe völlig neuer App-Projekte erstellt und versucht, dieselbe Bundle-ID erneut zu verwenden, um nicht das gesamte portalseitige Setup erneut durchführen zu müssen. Auch dies war nur für Sandbox-Tests.
Ich würde feststellen, dass, während das Setup und die Registrierung für die erste App gut funktionieren würden, ich diese App vom Gerät löschen, dieselbe Bundle-ID für die zweite App festlegen und dann versuchen würde, PNs mit dieser App zu registrieren, die ich erhalten würde dieser Fehler.
Meine Lösung war:
.mobileprovision
Datei, um sie wieder in Xcode zu installierenDieser Ansatz scheint den vorherigen Status zu verlieren, und ich kann mich für PNs mit der neuen App / derselben Bundle-ID registrieren.
quelle
Für diejenigen, die diesen Fehler in iOS 10 erhalten haben, können Sie die folgenden Schritte versuchen:
1. Reinigen Sie Ihr Projekt.
2.und überprüfen Sie Ziele -> Funktionen -> Push-Benachrichtigung. Wenn diese Option deaktiviert ist, aktivieren Sie sie.
Und das Problem wird gelöst. Die obigen Schritte helfen mir, dieses Problem zu beseitigen. Hoffe es wird jemandem helfen.
quelle
Neues Bereitstellungsprofil hat bei mir funktioniert. Stellen Sie sicher, dass Sie ein Entwicklerprofil verwenden, wenn Sie sich in der Entwicklung befinden (verwenden Sie kein Ad-hoc-Profil). Danach war es in Ordnung, keine Ahnung, warum der alte nicht mehr richtig funktionierte.
quelle