Fehlende Berechtigung zur Push-Benachrichtigung

126

Ich habe eine App zur Einreichung, wenn sie abgelehnt wurde und ich die Nachricht erhalten habe

Fehlende Push-Benachrichtigungsberechtigung - Ihre App scheint sich beim Apple Push Notification-Dienst zu registrieren, aber die Berechtigungen der App-Signatur enthalten nicht die Berechtigung "aps-environment". Wenn Ihre App den Apple Push Notification-Dienst verwendet, stellen Sie sicher, dass Ihre App-ID für die Push-Benachrichtigung im Bereitstellungsportal aktiviert ist, und senden Sie sie erneut, nachdem Sie Ihre App mit einem Distributionsbereitstellungsprofil signiert haben, das die Berechtigung "aps-environment" enthält.

Ich habe meine Ad-hoc-Bereitstellung überprüft und dort eine Aps-Umgebung und Produktion gefunden. Wenn ich jedoch meine Distributionsbereitstellung öffne, finde ich keine.

Ist dies die Ursache für diese Fehlermeldung und die Ablehnung von Apple? Wie kann ich das beheben?

mirageservo
quelle

Antworten:

80

Ja, das ist die Ursache für die Ablehnung des App Store. Wenn Ihr Ad-hoc-Bereitstellungsprofil über den APS-Umgebungsschlüssel verfügt, bedeutet dies, dass Ihre App im Apple Provisioning Portal korrekt konfiguriert ist. Sie müssen lediglich das App Store-Verteilungsprofil auf Ihrem lokalen Computer löschen und das Verteilungsprofil erneut vom Provisioning Portal herunterladen und installieren. Dieser neue sollte den APS-Umgebungsschlüssel enthalten.

Tom
quelle
Um etwas mehr Nebel zu beseitigen, heißt es ziemlich genau, dass das "Verteilungsprofil die APS-Umgebung usw. enthalten muss", und dass ich es finden sollte, wenn ich die Bereitstellung in einem Texteditor
öffne
Muss ich ein neues SSL-Zertifikat generieren, insbesondere wenn ich etwas von meinem Distributionsprofil geändert habe?
Mirageservo
2
Nein, kein neues Entwicklerzertifikat erforderlich. Wenn Sie die Verteilung für Push-Benachrichtigungen aktiviert haben (was Sie irgendwann getan haben müssen, weil Ihr Ad-hoc-Profil den APS-Umgebungsschlüssel enthält), generiert das iTunes Provisioning Portal ein neues App Store-Verteilungsprofil, das den APS-Umgebungsschlüssel enthält. Sie haben wahrscheinlich gerade die neueste Version heruntergeladen und installiert.
Tom
Eine weitere Sache, bevor diese Frage in die Galaxie kommt, muss ich die IPA neu kompilieren (neu archivieren), da sich die Einstellungen für die Projekterstellung ändern würden, oder kann ich die App direkt verteilen, ohne eine Neukompilierung zu stören?
Mirageservo
Sie müssen erneut archivieren. Das der App zugeordnete Bereitstellungsprofil wird in die IPA-Datei eingebettet.
Tom
43

Erste App ID

Stellen Sie sicher, dass Ihre ID-Push-Benachrichtigung auf der Produktionsseite aktiviert ist

wie im Bild erscheinen

Geben Sie hier die Bildbeschreibung ein

Zweites Zertifikat

Erstellen Sie im Produktionsbereich zwei Zertifikate mit Ihrer ID (Push-Benachrichtigung aktiviert).

App Store und Ad-hoc- Zertifikat

SSL- Zertifikat (Sandbox) des Apple Push Notification Service

Geben Sie hier die Bildbeschreibung ein

Dritte Bereitstellungsprofile

Erstellen Sie im Bereich "Verteilung" ein App Store- Profil mit Ihrer ID

Schließlich

Während Sie Ihren Papierkorb hochladen, müssen Sie überprüfen, welches Bereitstellungsprofil verwendet wird und über viele Berechtigungen verfügt

Geben Sie hier die Bildbeschreibung ein

Dies alles verursacht dieses Problem. Ich hoffe, dies ist hilfreich für Sie

Mina Fawzy
quelle
1
Das hat mir gefehlt. Ich musste ein neues Bereitstellungsprofil auf der Apple-Entwicklerseite mithilfe der App-ID mit Push-Benachrichtigungen erstellen. Mit dem neuen Bereitstellungsprofil wurde meiner App schließlich die Berechtigung für die APS-Umgebung hinzugefügt. Danke dir!
M. Luisa Carrión
38

In XCode 8 müssen Sie Push auf der Registerkarte "Funktionen" Ihres Ziels aktivieren und zusätzlich alle Bestimmungen und Zertifikate aktivieren : Xcode 8 "Die Berechtigung für die APS-Umgebung fehlt in der Signatur der App" beim Senden

Mein Blogbeitrag dazu hier .

Vaiden
quelle
8
Das ist so ein klassischer Apple. Zwei Stunden, nachdem ich einen Build eingereicht habe, senden sie eine Fehlermeldung zu einem Problem, das ich längst behoben habe (Aktivieren des Push-Benachrichtigungsanwendungsdienstes im Entwicklungsportal) und das mit einem Link zu einem 404 erklärt wird. Dann stellt sich heraus, dass das echte Problem vorliegt Das Problem ist, dass sie meine Einstellungen beim Upgrade auf eine neue Version ihrer Software (an die ich gebunden bin) nicht migriert haben. Pfui.
Rembrandt Q. Einstein
3
Gleiche Geschichte hier. Wir haben die Fehlermeldung fast als Apple-Fehler abgetan.
Vaiden
23

Ich habe diese Nachricht aus einem anderen Grund erhalten: Ich habe eine App über Xcode gesendet, ohne zuvor ein App Store-Verteilungsprofil speziell für die App erstellt zu haben. Ich glaube, Xcode verwendet automatisch ein Wildcard-App-Store-Profil, wenn Sie eines installiert haben. Für eine App, die Push-Benachrichtigungen verwendet, ist jedoch ein eigenes Profil erforderlich.

Das Update besteht darin, ein neues App Store-Verteilungsprofil für die App zu erstellen. Anschließend laden Sie es herunter, ziehen es auf Xcode und ändern Ihr Projekt Build-Einstellungen> Codesignatur> Freigeben, um das neue Profil zu verwenden.

Simon Woodside
quelle
11

In Anlehnung an die Antwort von @Vaiden können Sie dieses Problem in Xcode 8 beheben, indem Sie das Ziel auswählen und auf "Problem beheben" klicken. Natürlich müssen Sie weiterhin Push-Benachrichtigungen im Apple Developer Portal einrichten (Sie können den Vorgang ein wenig vereinfachen, indem Sie die neue Option "Signatur automatisch verwalten" verwenden, die Ihnen das mühsame Herunterladen der Bereitstellungsprofile erspart).

Fix me Option

Ian
quelle
8

Für diejenigen, die auf dieses Problem stoßen und tatsächlich Push-Benachrichtigungen in ihren Apps verwenden:

Unsere Push-Zertifikate waren vor kurzem abgelaufen, daher haben wir neue Entwickler- / Produkt-Push-Zertifikate auf die von Apple beschriebene Standardmethode erstellt (ich werde hier nicht näher darauf eingehen, da es beim Aktualisieren im gesamten Web zahlreiche Informationen dazu gibt Ihre Push-Zertifikate für ein weiteres Nutzungsjahr).

Danach tauchte jedoch das Problem in dieser Frage auf. Egal was wir getan haben, wir haben diese E-Mail von Apple erhalten, nachdem wir unsere App gesendet haben. Als wir die Einstellungen unseres Distributionsbereitstellungsprofils im Apple Member Center überprüften, sah alles gut aus (Push war für unsere App-ID für prod / dev aktiviert, und unser Distributionsbereitstellungsprofil war immer noch mit dieser App-ID verbunden, die wir buchstäblich gerade erstellt haben neue Push-Zertifikate für ein weiteres Jahr, wie es die Standardpraxis ist).

Schließlich ist es das, was es für mich gelöst hat:

  1. Erstellen Sie ein neues Distributionsbereitstellungsprofil, das auf Ihre App-ID verweist (belassen Sie Ihr aktuelles Profil).
  2. Aktualisieren Sie in Xcode Ihre Bereitstellungsprofile über Einstellungen> Konten> Konto auswählen> Details> Klicken Sie auf das Aktualisierungssymbol
  3. Erstellen Sie manuell eine Berechtigungsplist-Datei für Ihre App:
    • Menü Datei> Neue Datei ...
    • Wählen Sie iOS> Ressource> Eigenschaftsliste
    • Nennen Sie die neue Datei "foo.entitlements" (normalerweise ist "foo" der Zielname).
    • Klicken Sie auf das (+) neben "Berechtigungsdatei", um ein Element der obersten Ebene hinzuzufügen (der Eigenschaftenlisten-Editor verwendet aufgrund der Dateierweiterung das richtige Schema).
  4. Stellen Sie sicher, dass diese Berechtigungsdatei in den Build-Einstellungen Ihres Ziels verwendet wird (Ziel> Build-Einstellungen> Suche nach "Berechtigungen". Legen Sie in CODE_SIGN_ENTITLEMENTS den Pfad zu Ihrer soeben erstellten Berechtigungsdatei fest.)
  5. Stellen Sie sicher, dass das Identifizierungsprofil / die Codesignaturidentität in Ihrem Ziel korrekt auf das entsprechende Verteilungsbereitstellungsprofil / die Signaturidentitätsidentität eingestellt ist (dies sollte offensichtlich sein).
  6. Ich bin nicht 100% sicher, ob dies Auswirkungen hat (dies sollte nicht der Fall sein, da die Zieleinstellungen die Projekteinstellungen überschreiben, aber ich habe dies trotzdem getan). Stellen Sie sicher, dass das Bereitstellungsprofil / die Signaturidentität Ihres Projekts mit dem Ihres Ziels übereinstimmt
  7. Klicken Sie in der von Ihnen erstellten Berechtigungsdatei mit der rechten Maustaste in die leere Datei und wählen Sie "Rohe Schlüssel / Werte anzeigen".
  8. Fügen Sie der Berechtigungsdatei einen neuen Eintrag mit dem Namen "aps-environment" hinzu und setzen Sie den Wert auf "Production".
  9. Ein wichtiger Hinweis: Wenn Sie zuvor die Berechtigung für Schlüsselbundzugriffsgruppen verwendet haben, möchten Sie diesen Schlüssel auch hier hinzufügen, da er aus irgendeinem Grund für mich gelöscht wurde, wenn Sie dies manuell tun. Stellen Sie sicher, dass der Wert mit dem Wert übereinstimmt, der in früheren Builds verwendet wurde (Sie können den Wert ermitteln, indem Sie einen vorherigen Build in Organizer suchen, versuchen, ihn an den App Store zu senden, Ihr Team auswählen und vor dem Senden der App auf den Pfeil neben klicken Zeichenfolge "(X) Berechtigungen", um die Berechtigungen zu erweitern und den Wert der Berechtigung für die Schlüsselbundzugriffsgruppe anzuzeigen.
  10. Archivieren Sie Ihre App und versuchen Sie, sie zu senden, bis Sie zur endgültigen Schaltfläche "Senden" gelangen. Sie sollten sehen, dass diese App jetzt mit dem neuen Bereitstellungsprofil erstellt wurde, das Sie im Member Center erstellt haben. Brechen Sie dies jetzt ab.
  11. Kehren Sie zum Apple Member Center zurück und löschen Sie das neue Bereitstellungsprofil, das Sie in Schritt 1 erstellt haben.
  12. Aktualisieren Sie in Xcode Ihre Liste der Bereitstellungsprofile erneut, indem Sie Schritt 2 wiederholen.
  13. Archivieren Sie jetzt Ihre App erneut, und Sie sollten sehen, dass die App mit dem alten Verteilungsbereitstellungsprofil erstellt wurde, das Sie verwenden wollten, und die Berechtigung für die APS-Umgebung korrekt hat. Senden und fertig.

Ich weiß, dass dies nicht so detailliert ist, wie es sein sollte, wie es Screenshots geben sollte. Ich werde versuchen, es mit Screenshots zu aktualisieren, wenn ich kann, aber vorerst bin ich in einer Zeitkrise und wollte den Überblick behalten was ich da draußen gemacht habe. Es besteht auch eine sehr wahrscheinliche Wahrscheinlichkeit, dass einige oder die meisten der von mir beschriebenen Schritte nicht erforderlich sind. Ich setze sie hier ein, weil ich sie ausgeführt habe und sie möglicherweise zur endgültigen Lösung geführt haben.

Adam Eisfeld
quelle
Danke dir. # 8 war für mich auf Entwicklung ausgerichtet, was unser Problem sein könnte.
ingage
Vielen Dank, Sie haben einen ganzen Tag mit diesem Shittery verschwendet. Schritt 4 war das Problem. Aus irgendeinem Grund wurden die Berechtigungen nur beim Hochladen des App Store ignoriert, ohne CODE_SIGN_ENTITLEMENTS anzugeben.
Mark Kazakov
5

Überprüfen Sie, ob Ihre App-ID Push-aktiviert ist oder nicht auf developer.apple.com im iOS-Bereitstellungsportal. Wenn nicht, konfigurieren Sie Ihr Push-SSL-Zertifikat für Ihre App-ID. Laden Sie es herunter und installieren Sie es erneut in Ihrem Schlüsselbund. Installieren Sie dann Ihr Verteilerprofil in Ihrem Xcode Liabrary

Vishals p
quelle
4

Ich war auch mit diesem Problem konfrontiert, obwohl ich in meiner App überhaupt keine Push-Benachrichtigungen verwendete. Das Erstellen eines neuen Bereitstellungsprofils funktionierte auch für mich nicht. Was ich tat, war: -

1.Erstellen Sie ein neues Zertifikat nur für den Ad-hoc- und App-Store.

2. Erstellen Sie dann ein Verteilungsprofil mit diesem Zertifikat und integrieren Sie das Profil in Xcode.

Dann neu eingereichter Build mit diesem Profil ohne Vorwarnung genehmigt.

Wüstenrose
quelle
2
Ich habe es versucht - hat nicht geholfen. Ich bekomme immer noch die fehlenden Push-Benachrichtigungen. Ich verwende keine Push-Benachrichtigungen!
Adam
2

In meinem Fall habe ich sogar ein myapp.profile erstellt und es manuell in xcode gesetzt. Als ich "show in finder" auswählte und die embedded.mobileprovision lokalisierte und überprüfte, ob die aps-Umgebung in der Datei vorhanden ist, war der Fehler noch da.

Ich ging dann zum Entwicklercenter und stellte fest, dass der Status von XC: myapp.profile ungültig ist. Ich habe es aktualisiert und das XC: myapp.profile installiert und es hat gut funktioniert.

Ich denke, xcode versucht, das Profil zu verwalten, und Sie müssen das Bereitstellungsprofil überprüfen, wenn Sie Ihre Binärdatei zum Speichern einreichen, und sicherstellen, dass es das richtige ist. Und nach anderen Antworten kann es aus verschiedenen Gründen verursacht werden, so dass es wirklich ärgerlich sein kann.

AKTUALISIEREN:

Sobald Sie mit dem heruntergeladenen Profil unterschrieben und bestätigt haben, dass aps-environmentes beim Versuch, es zu senden, vorhanden war App Store, sollten Sie in der Lage sein, die Profil- und Codesignaturentität in automatisch und zu ändern iOS Developer. Hoffe, es kann in Xcode 7 verbessert werden.

superarts.org
quelle
Ich habe alle Profile überprüft und auch XC: Profil ist aktualisiert und es enthält keinen Asp-Umgebungsschlüssel, trotzdem habe ich immer wieder das gleiche Problem. Jede Hilfe wird geschätzt. Und ja, ich brauche keine Push-Benachrichtigung in der Anwendung implementiert
The iOSDev
Könnten Sie sicherstellen, dass Sie den binären Inhalt des Bereitstellungsprofils überprüfen und feststellen, ob sich die Zeichenfolge "aps-environment" im Inneren befindet oder nicht? Wenn es drin ist, müssen Sie einen Weg finden, es loszuwerden, andernfalls müssen Sie sicherstellen, dass das Profil das ist, mit dem Sie Ihre App signieren. In jedem Fall muss es ein Problem geben.
Superarts.org
1
Ich habe es zweimal überprüft und versuche mehr herauszufinden, aber kein Glück. Es gibt keine solche Zeichenfolge, aber nach 2 Tagen Suche und Versuchen habe ich festgestellt, dass dieses Problem bei Xcode 7 Beta nicht bei meinem Code auftritt :) Der gleiche Build über Xcode 6.4 funktioniert einwandfrei und es gibt keine E-Mail von Apple, die dies meldet Problem, also ist das Problem mit Xcode 7 Beta 4 nicht mit Code oder Profil.
Der iOSDev
2

Das hat es für mich behoben. (Ich hatte bereits versucht, die Funktionen ein- und auszuschalten, das Bereitstellungsprofil neu zu erstellen usw.).

Auf der Registerkarte " Build-Einstellungen" in " Code Signing Entitlements" war meine .entitlements- Datei nicht für alle Abschnitte verknüpft. Nachdem ich es dem Abschnitt "Beliebiges SDK" hinzugefügt hatte, wurde der Fehler behoben.

Geben Sie hier die Bildbeschreibung ein

mogile_oli
quelle
2

Um dies für eine ausgeworfene Expo-App zu lösen, ging ich zur Registerkarte "Funktionen", aktivierte Push und deaktivierte sie erneut. Dadurch wurde die APNS-Einstellung "Berechtigungen" aus der .entitlements-Datei entfernt.

Chris
quelle
Ich habe dies bei meinem "ausgeworfenen" Projekt versucht, aber ich
erhalte
1

Ich hatte das gleiche Problem und meine Lösung bestand darin, die Push-Benachrichtigungsberechtigung von Ziel -> Funktionen hinzuzufügen.

Shalom Dahan
quelle
0

Dies passierte mir plötzlich, weil das Distributionsprofil meiner App abgelaufen war. Xcode begann stattdessen mit der Verwendung des Platzhalterprofils, für das die Push-Benachrichtigungsberechtigung nicht aktiviert war. Ich habe keine Warnung erhalten. Die Lösung war einfach; Ich musste nur ein weiteres Distributionsprofil für meine App im Apple Developer Member Center erstellen, es herunterladen und doppelklicken, um es in Xcode zu installieren.

ahmacleod
quelle
0

Hier gibt es einige wirklich gute Vorschläge.

In Bezug auf den letzten Screenshot, den Mina nach der ersten Archivierung meiner App bereitgestellt hat, enthielt das beim Hochladen erwähnte Bereitstellungsprofil einen Platzhalter (XC. *). Das ist falsch.

Es waren einige erhebliche Anstrengungen erforderlich, um dieses Problem zu lösen. Ich musste eine Kombination der Vorschläge von Simon Woodside & Mina Fawzy durchführen.

Wenn Sie über vorhandene Zertifikate und Bereitstellungsprofile für Ihr Projekt verfügen, ist jetzt ein guter Zeitpunkt, um alle lokal zu entfernen und alle remote zu widerrufen. Gönnen Sie sich einen Neuanfang.

Der detaillierte Vorschlag von Mina Fawzy ist ausgezeichnet. Wenn Sie Minas Vorschlag ausführen, sollten Sie sich bei korrekter Ausführung online um Sie kümmern.

Geben Sie Simons Vorschlag ein. Zwei Dinge, die ich in meinem Projekt überprüfen musste. Gehen Sie mit XCode hier:

PROJEKT -> EINSTELLUNGEN ERSTELLEN -> CODE-UNTERZEICHNUNG

Überprüfen Sie das Identitäts- und Bereitstellungsprofil für die Codesignatur Eigenschaften . Stellen Sie sicher, dass Sie diese beiden Eigenschaften auf die Ihres Projektnamens festlegen. Lassen Sie nicht zu, dass XCode automatisch für Sie auswählt, und verwenden Sie keine generische Codesignaturidentität (z. B. Iphone Developer).

Stellen Sie sicher, dass Sie die App tatsächlich auf Ihren Geräten installieren können, bevor Sie sich für die Archivierung entscheiden.

Trainer Roebuck
quelle
0

Das größte Problem , dass ich nach der Aktivierung der haben Push Notificationvon Capabilitiesund remaking alle Zertifikate ist , dass der Zielname und der Ordnername in dem das Projekt gespeichert wurde aus 2 Strings zusammengesetzt war , durch ein Leerzeichen getrennt. Nach dem Entfernen des Platzes hat alles gut funktioniert!

Constantin Saulenco
quelle
1
Meine App verwendet keine Push-Benachrichtigung, aber ich erhalte diese Warnung immer noch von Apple. Bitte vorschlagen
Chandni
0

Ich hatte dieses Problem, weil meine Berechtigungsdatei aufgrund vorheriger manueller Bearbeitung fehlerhaft war. Ich habe die falsch formatierte Syntax für Berechtigungseinträge entfernt und konnte dann auf der Registerkarte "Funktionen" auf "Fix" klicken, und Xcode hat die Berechtigung zu meiner Datei hinzugefügt.

Hier ist ein Beispiel für eine ordnungsgemäß formatierte Berechtigungsdatei (" Runner.entitlements"):

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.applesignin</key>
    <array>
        <string>Default</string>
    </array>
</dict>
</plist>
Jonas357
quelle
0

FIX IDEA Hey Leute, ich habe eine App erstellt und keine Push-Benachrichtigungsfunktionen verwendet, aber ich habe trotzdem eine E-Mail erhalten. Nachdem ich die Zertifikate, IDs und Profile der Bundle-ID überprüft hatte, mit der ich meine App im Apple Store Connect im Apple Developer Portal erstellt hatte, stellte ich fest, dass Push-Benachrichtigungen aktiviert waren.

Was Sie tun müssen, ist:

Gehen Sie zur Anmeldeseite für Apple-Entwickler, auf der Sie Ihre Zertifikate auch verwalten können. 2. Wählen Sie auf der rechten Seite die Registerkarte "Zertifikate, IDs und Profile". 3. Wählen Sie jetzt "Kennungen". 4. und die Bundle-ID aus der Liste rechts. 5. Jetzt Scrollen Sie nach unten, bis Sie die Push-Benachrichtigung sehen. 6. Deaktivieren Sie sie. 7. Archivieren Sie Ihren Build und laden Sie ihn erneut in Apple Store Connect hoch

Ich hoffe es hilft!

Qooplite
quelle