Ich habe eine App, bei der wir in den letzten 6 Monaten Dutzende von Versionen eingereicht haben, und wir verwenden APNS. Nach dem Upgrade auf Xcode 8 habe ich die folgende E-Mail von Apple erhalten
Lieber Entwickler,
Wir haben ein oder mehrere Probleme mit Ihrer letzten Lieferung für APP_NAME festgestellt. Ihre Lieferung war erfolgreich, aber Sie möchten möglicherweise die folgenden Probleme bei Ihrer nächsten Lieferung beheben:
Fehlende Push-Benachrichtigungsberechtigung - Ihre App enthält eine API für den Push-Benachrichtigungsdienst von Apple, aber die Berechtigung für die APS-Umgebung fehlt in der Signatur der App. Stellen Sie zur Behebung dieses Problems sicher, dass Ihre App-ID für die Push-Benachrichtigung im Bereitstellungsportal aktiviert ist. Signieren Sie dann Ihre App mit einem Distributionsbereitstellungsprofil, das die Berechtigung aps-environment enthält. Dadurch wird die richtige Signatur erstellt und Sie können Ihre App erneut einreichen. Weitere Informationen finden Sie unter "Bereitstellung und Entwicklung" im Programmierhandbuch für lokale und Push-Benachrichtigungen. Wenn Ihre App den Apple Push Notification-Dienst nicht verwendet, ist keine Aktion erforderlich. Sie können die API aus zukünftigen Übermittlungen entfernen, um diese Warnung zu beenden. Wenn Sie ein Framework eines Drittanbieters verwenden,
Nachdem Sie die Probleme behoben haben, können Sie mit Xcode oder Application Loader eine neue Binärdatei in iTunes Connect hochladen.
Grüße,
Das App Store-Team
Was seltsam ist, ist, dass ich zu developer.apple.com gegangen bin -> Zertifikate, Kennungen und Profile und auf meiner AppId sind Push-Benachrichtigungen noch aktiviert. Ich mache nichts anderes als jemals zuvor und bin gespannt, ob das Xcode 8-Update etwas kaputt gemacht hat. Irgendwelche Ideen?
Übrigens: Der Link, den sie für das Push Notification Programming Guide gesetzt haben, war in der E-Mail defekt, das ist also kein gutes Zeichen.
Ich habe auch das gleiche Problem und ich bin sicher, dass die Push-Benachrichtigung in Xcode8 standardmäßig deaktiviert ist. Ich habe es nicht bemerkt. Sei vorsichtig damit.
quelle
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) sagte, müssen Sie also überprüfen, ob Push-Benachrichtigungen aktiviert sind.
Für mich war es kein "Fix Me" -Button, aber ich hatte zwei Berechtigungsdateien (eine für die Entwicklung und eine für die Verteilung). Durch Aktivieren der Push-Benachrichtigungsfunktion wird der
aps-environment
Schlüssel - mit dem Wertdevelopment
- zur Entwicklungsberechtigungsdatei hinzugefügt, jedoch nicht zur Verteilungsberechtigungsdatei. Durch das Kopieren desselben Schlüssels in die Distribution wurde die Warn-E-Mail beim Hochladen auf iTunes Connect entfernt.Bei den meisten Projekten sollte es ausreichen, Push-Benachrichtigungen zu aktivieren. Wenn diese bereits aktiviert sind, der Schlüssel jedoch nicht in den Berechtigungen enthalten ist, versuchen Sie, ihn aus- und wieder einzuschalten.
quelle
.entitlements
es immerproduction
als das verwendet wird , unabhängig davon, was ich in meiner Datei für die aktuelle Konfiguration / das aktuelle Schema angegeben habeaps-environment
.production
.development
. Sie wird in der IPA geändert, wenn das Projekt archiviert wird.Aus den Xcode- Versionshinweisen :
Dies ist eine große Änderung, da es immer seltsam war, dass für die Berechtigung für die APS-Umgebung keine Liste erforderlich war, aber viele andere.
Für diejenigen unter Ihnen, die nicht einfach blind auf "Fix Me" drücken möchten und derzeit keine Berechtigungsdatei haben, handelt es sich lediglich um eine Plist-Datei, auf die in den Build-Einstellungen Ihres Projekts unter "Codesignatur-Berechtigungen" verwiesen wird.
quelle
Nach einem Tag des Kampfes mit Xcode 8 konnten wir nicht herausfinden, warum die
aps-environment
Entwicklung NICHT zu unseren Debug-Builds hinzugefügt wurde. Es fehlte im Abschnitt "Berechtigungen" in der erstellten App für Debug-Tests ... obwohl wir die neue Funktion AKTIVIERT hatten und die Berechtigungsdatei vorhanden war. Das Problem ist, dass die Berechtigungsdatei für JEDES SDK in den Xcode-Build-Einstellungen für Debug-Berechtigungen festgelegt werden muss.quelle
Debug
Schlüssel und dem Festlegen des Werts für denDebug
> gibtAny SDK
, da letzterer verwendet wird, um den Wert für ein bestimmtes SDK zu überschreiben.Ich habe dieselbe E-Mail von Apple mit XCode 7.3.1 erhalten. Was ich getan habe, um das Problem zu lösen, war:
quelle
Wenn Sie Firebase-Frameworks verwenden und keine Push-Benachrichtigungen verwenden, gibt es zwei Lösungen: 1. Stellen Sie einfach die Problemmeldung ein, die jedes Mal an Ihr gesamtes Team gesendet wird, wenn Sie eine Binärdatei hochladen. Die App wird weiterhin als Übermittlung akzeptiert, solange Sie keine Benachrichtigungen verwenden. Sie können die Warnung ignorieren. oder 2. tun Sie dies: https://stackoverflow.com/a/46802075/7529450 . Dadurch wird die lästige E-Mail-Benachrichtigung entfernt und auch als Übermittlung akzeptiert.
quelle
Das automatische Verwalten des Signierens war für mich deaktiviert. Ich habe es überprüft und es funktioniert einwandfrei für mich.
quelle
Bei Verwendung von Xcode 9 wurden Push-Benachrichtigungen aktiviert.
Ich habe versucht, die Push-Benachrichtigungsfunktionen zu deaktivieren / wieder zu aktivieren . (hat nicht funktioniert)
Ich habe versucht , das Signieren automatisch zu deaktivieren / wieder 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 das automatische Verwalten der Signatur nach Stationen deaktivieren / wieder aktivieren .
quelle
Für mich war das Problem, weil es zwei Berechtigungsdateien gab:
Entitlements-Debug.plist
undEntitlements-Release.plist
. Und nur einer von ihnen (Debug) hat Einstellungen benötigt.Das Ändern des Mehrfachwerts von Build-Einstellungen>
MyAppName/MyAppName.entitlements
Signieren > Codesignatur- Berechtigungen in einen einzigen und das erneute Aktivieren von Funktionen > Push-Benachrichtigungs- Umschalter hat den Trick für mich getan.Ich hoffe es hilft.
quelle
Eine weitere Option, die funktioniert hat: Kopieren und Einfügen der Quelle von
AppName/Entitlements-Debug.plist
inAppName/Entitlements-Release.plist
.quelle