wake-up-neo.net

Xcode 8 "Die ApS-Umgebungsberechtigung fehlt in der Signatur der App" beim Senden

Ich habe eine App, an die wir in den letzten 6 Monaten Dutzende von Versionen eingereicht haben, und wir verwenden APNS. Ich habe die folgende E-Mail von Apple nach dem Upgrade auf Xcode 8 erhalten

Sehr geehrter Entwickler,

Wir haben ein oder mehrere Probleme mit Ihrer letzten Lieferung für .__ festgestellt. APP NAME. Ihre Lieferung erfolgte erfolgreich, Sie können jedoch die folgenden Probleme in Ihrem .__ beheben. nächste Lieferung:

Fehlende Push-Benachrichtigungsberechtigung - Ihre App enthält eine API für Push-Benachrichtigungsdienst von Apple, jedoch die Berechtigung für die APS-Umgebung fehlt in der Signatur der App. Um dies zu beheben, stellen Sie sicher, dass Ihre Die App-ID ist für die Push-Benachrichtigung im Bereitstellungsportal aktiviert. Unterschreiben Sie dann Ihre App mit einem Verteilungsbereitstellungsprofil, das enthält die APS-Umgebungsberechtigung. Dadurch wird die richtige .__ erstellt. Unterschrift, und Sie können Ihre App erneut einreichen. Weitere Informationen finden Sie unter "Bereitstellung und Entwicklung" im Programmierhandbuch für Local und Push Notification für Mehr Informationen. Wenn Ihre App die Apple Push-Benachrichtigung nicht verwendet Service ist keine Aktion erforderlich. Sie können die API in Zukunft entfernen Beiträge, um diese Warnung zu beenden. Wenn Sie ein Drittanbieter-Framework verwenden, wird Möglicherweise müssen Sie sich an den Entwickler wenden, um Informationen zum Entfernen von .__ zu erhalten. API.

Nachdem Sie die Probleme behoben haben, können Sie Xcode oder Application .__ verwenden. Loader, um eine neue Binärdatei in iTunes Connect hochzuladen.

Grüße,

Das App Store-Team

Seltsam ist, dass ich zu developer.Apple.com -> Zertifikate, Kennungen und Profile gegangen bin und in meiner AppId sind Push-Benachrichtigungen immer noch aktiviert. Ich mache nichts anderes als das, was ich je gemacht habe, also bin ich neugierig, ob das Update Xcode 8 etwas kaputt gemacht hat. Irgendwelche Ideen? 

Übrigens: Der Link zum Programmierungsleitfaden für Push-Benachrichtigungen wurde in der E-Mail abgebrochen. Das ist also kein gutes Zeichen.

110
Unome

Eigentlich sehr einfach. Aus irgendeinem Grund wurde es für Xcode 8 deaktiviert, aber gehen Sie zu Ziele -> Funktionen und vergewissern Sie sich, dass Push-Benachrichtigungen in dieser Ansicht korrekt sind. Für mich hatte es ein "Fix Me", auf das ich klicken musste, und voila. 

142
Unome

Ich habe auch das gleiche Problem, und ich bin sicher, dass die Push-Benachrichtigung in Xcode8 standardmäßig deaktiviert ist. Ich habe es nicht gemerkt. Sei vorsichtig damit.

 capability

78
Bruce Tsai

Aus den Xcode Versionshinweisen :

Xcode 8 kopiert die Berechtigung für die APS-Umgebung zum Erstellungszeitpunkt nicht automatisch aus den Bereitstellungsprofilen. Dieses Verhalten ist beabsichtigt. Um diese Berechtigung zu verwenden, aktivieren Sie entweder Push-Benachrichtigungen im Funktionsbereich des Projekteditors oder fügen Sie die Berechtigung manuell zu Ihrer Berechtigungsdatei hinzu. (28076333)

Dies ist eine großartige Änderung, da es immer ziemlich seltsam war, dass der Anspruch auf die ApS-Umgebung nicht die plist-Anforderung erforderte, aber viele andere taten dies.

Für diejenigen unter Ihnen, die nicht einfach "Fix Me" drücken möchten und derzeit keine Berechtigungsdatei besitzen, handelt es sich lediglich um eine Plist-Datei, auf die in den Build-Einstellungen Ihres Projekts unter "Codesignaturberechtigungen" verwiesen wird.

27
mattyohe

In Xcode 8 wurde eine Änderung vorgenommen, bei der Ihre Berechtigungen nicht mehr von den App-Kennungen stammen, sondern von den in Ihrem App-Ziel ausgewählten Funktionen. Wie Unome (das OP) schon sagt, müssen Sie also sicherstellen, dass Push-Benachrichtigungen eingeschaltet sind. 

Für mich war es kein "Fix Me" -Button, aber ich hatte zwei Berechtigungsdateien (eine für Entwicklung und eine für die Verteilung). Durch Umschalten der Push-Benachrichtigungsfunktion würde der aps-environment-Schlüssel - mit dem Wert development - zur Entwicklungsberechtigungsdatei hinzugefügt, jedoch nicht zur Verteilungsberechtigungsdatei. Das Kopieren des gleichen Schlüssels in die Distribution hat funktioniert, um die Warn-E-Mail beim Hochladen auf iTunes Connect zu entfernen.

Für die meisten Projekte sollte es ausreichend sein, Push-Benachrichtigungen zu aktivieren. Wenn dies bereits der Fall ist, der Schlüssel jedoch nicht in den Berechtigungen enthalten ist, versuchen Sie, ihn ein- und auszuschalten.

27
timgcarlson

Nach einem harten Tag mit Xcode 8 konnten wir nicht herausfinden, warum die aps-environment-Entwicklung NICHT zu unseren Debug-Builds hinzugefügt wurde. Es fehlte im Berechtigungsabschnitt der erstellten App zum Testen von Debuggen, obwohl die neue Capability-Funktion ENABLED aktiviert war und die Berechtigungsdatei vorhanden war. Das Problem ist, dass die Berechtigungsdatei für ANY SDK in den Xcode Build-Einstellungen für Debug-Berechtigungen festgelegt werden muss.

 screenshot

12
James L Harris

Ich habe dieselbe E-Mail von Apple mit XCode 7.3.1 erhalten. Was ich getan habe, um das Problem zu lösen, war:

  1. Klicken Sie unter Capabilities> Push-Benachrichtigung auf ON setzen, wie in der Antwort von @Bruce Tsai angegeben.
  2. Legen Sie unter Build-Settings> Code Signing> Code Signing Identity das Entwicklerzertifikat für Debug und das Distributionszertifikat für die Veröffentlichung fest, wie in der Abbildung dargestellt:

 enter image description here  enter image description here

6
Ruben

Wenn Sie Firebase-Frameworks verwenden und keine Push-Benachrichtigungen verwenden, gibt es zwei Lösungen: 1. Geben Sie einfach die Problemmeldung ab, die bei jedem Hochladen einer Binärdatei an Ihr gesamtes Team gesendet wird. Die App wird weiterhin als Einreichung akzeptiert, solange Sie eigentlich keine Benachrichtigungen verwenden. Sie können die Warnung jedoch ignorieren. oder 2. tun Sie dies: https://stackoverflow.com/a/46802075/7529450 . Dadurch wird die lästige E-Mail-Benachrichtigung entfernt und auch als Einreichung akzeptiert.

5
Aaron Halvorsen

 Automatically manage signing was off for me

Das automatische Verwalten des Signierens war für mich aus, ich habe es überprüft und funktioniert gut für mich.

4
Shemeer M Ali

Die Verwendung von Xcode 9-Pushbenachrichtigungen wurde aktiviert.

Ich habe versucht, die Push Notification-Funktionen zu deaktivieren/erneut zu aktivieren. (hat nicht funktioniert)

Ich habe versucht, Automatisches Verwalten der Signatur zu deaktivieren/erneut zu aktivieren. (hat nicht funktioniert)

Es stellte sich heraus, dass ich meine Bereitstellungsprofile löschen und erneut hinzufügen musste. ( siehe hier, wie es geht ) Möglicherweise müssen Sie Automatisches Verwalten der Signatur nach den Stationen deaktivieren/erneut aktivieren.

4
Aldracor

Für mich bestand das Problem darin, dass es zwei Berechtigungsdateien gab: Entitlements-Debug.plist und Entitlements-Release.plist. Und nur einer von ihnen (Debug) benötigt Einstellungen.

Mehrere Werte von Build-Einstellungen> Signieren> Codesignaturberechtigungen in einen einzelnen MyAppName/MyAppName.entitlements ändern und dann Capabilities> Push Notifications aktivieren, hat der Switcher den Trick für mich getan.

Ich hoffe es hilft.

2

Eine weitere Option, die funktioniert hat: Kopieren Sie die Quelle von AppName/Entitlements-Debug.plist in AppName/Entitlements-Release.plist.

0