web-dev-qa-db-de.com

Fehlende Warnung für Push-Benachrichtigungsansprüche

Wir haben eine App-ID, ein Verteilungszertifikat und ein Bereitstellungsprofil erstellt. Push-Benachrichtigungen wurden anfangs nicht aktiviert.

Wir müssen jetzt Push-Benachrichtigungen in der App implementieren.

Wir haben Push-Benachrichtigungen in App D aktiviert, überprüfen das Bereitstellungsprofil, das Bereitstellungsprofil war ungültig, wurde aktualisiert und das neueste Bereitstellungsprofil heruntergeladen, um es für das nächste Mal zu verwenden.

Anschließend integrieren wir die APIs für Push-Benachrichtigungen über APNS in unseren Code.

Nach dem Hochladen der App in iTunesConnect erhalten wir folgende E-Mail von Apple:

Sehr geehrter Entwickler,

Wir haben ein oder mehrere Probleme mit Ihrer letzten Lieferung für "Swanvi" entdeckt. Ihre Lieferung war erfolgreich, Sie können jedoch die folgenden Probleme bei Ihrer nächsten Lieferung beheben:

Fehlende Push-Benachrichtigungsberechtigung - Ihre App enthält offenbar eine API, die zur Registrierung beim Apple Push Notification Service verwendet wird. Die Berechtigung der App-Signatur enthält jedoch nicht die Berechtigung "aps-environment". Wenn Ihre App den Apple Push-Benachrichtigungsdienst verwendet, stellen Sie sicher, dass Ihre App-ID für die Push-Benachrichtigung im Bereitstellungsportal aktiviert ist, und wiederholen Sie die Übermittlung, nachdem Sie Ihre App mit einem Verteilungs-Bereitstellungsprofil mit der Berechtigung "aps-environment" signiert haben. Weitere Informationen finden Sie unter "Bereitstellung und Entwicklung" im Programmierhandbuch für lokale und Push-Benachrichtigungen. Wenn Ihre App den Apple Push Notification Service nicht verwendet, ist keine Aktion erforderlich. Sie können die API aus zukünftigen Einreichungen entfernen, um diese Warnung zu beenden. Wenn Sie ein Drittanbieter-Framework verwenden, müssen Sie sich möglicherweise an den Entwickler wenden, um Informationen zum Entfernen der API zu erhalten.

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

Wir haben die App-ID erneut überprüft. Push-Benachrichtigungen sind für die Entwicklung und Produktion aktiviert.

Im Bereitstellungsprofil wird die Option Push-Benachrichtigungen angezeigt.

Warum erhalten wir diese Warnung per E-Mail?

57
Bis

Sie müssen zwei Dinge sehen: Die Bereitstellungsprofile, die von Ihrem Konto bei Xcode und denjenigen des Entwicklers verwendet werden

Es geht um die Bereitstellungsprofile. 

SCHRITT 1: Gehen Sie zu https://developer.Apple.com/account/ios/certificate/ und sehen Sie sich die Active iOS Distribution Provisioning-Profile an, die Sie für Ihre App benötigen. Klicken Sie dann darauf und stellen Sie sicher, dass Enabled ServicesPush Notification aktiviert ist. Wenn dies nicht der Fall ist, klicken Sie auf Bearbeiten und aktivieren Sie es, indem Sie den von Apple bereitgestellten Schritten folgen. Wenn es aktiviert ist, dann perfekt.

 distribution link

SCHRITT 2: Löschen Sie alle Invalid Bereitstellungsprofile, die Sie für die App sehen (nur die ungültigen für IHRE App). Ich erkläre Ihnen in den folgenden Schritten warum.

SCHRITT 3: Gehen Sie zu Xcode -> Einstellungen -> Details anzeigen (für Ihr Konto) -> [OPTIONAL: Um sicherzustellen, dass ein ungültiges ungültig ist, klicken Sie auf ein Provisioning-Profil und wählen Sie "Anzeigen in" Finder ", dann Löschen/Verschieben aller Bereitstellungsprofile aus diesem Ordner.] Klicken Sie nun auf Alle Profile herunterladen. Dadurch werden lokale Bereitstellungsprofile durch aktuelle ersetzt. Klicken Sie auf Fertig.

SCHRITT 4: Gehen Sie zu Ihrer App Ziele -> Build-Einstellungen -> Erweitern Sie unter Codesignierung Ihr Bereitstellungsprofil, um die Registerkarten Debug und Release anzuzeigen. Standardmäßig ist sie auf Automatisch eingestellt (weshalb Ihre App wahrscheinlich automatisch das ungültige Profil verwendet hat, das wir gerade in Schritt 2 gelöscht haben). Wählen Sie für Release das Sicherheitsprofil Active mit aktivierten Push-Benachrichtigungen aus, wie in Schritt 1 beschrieben.

Das ist es.

Sie sollten jetzt keine E-Mails erhalten.

45
Anish Kumar

@Djeeraj V.S. ist richtig. Cordova fügte einige bedingte Kompilierungen hinzu, um diese Anforderung für Apps zu entfernen, die keine Push-Benachrichtigungen benötigen. 

Sie können den Code in Classes\AppDelegate.h als diese Antwort auskommentieren, es ist jedoch besser, das Kompilierungssymbol DISABLE_Push_NOTIFICATIONS über die Benutzeroberfläche hinzuzufügen, damit Sie von zukünftigen Cordova-Upgrades profitieren können.

Ich komme aus dem .NET-Hintergrund, daher bin ich mit der bedingten Kompilierung vertraut, musste aber ein wenig Zeit darauf verwenden, das Compiler-Flag in XCode zu verwenden. 

Es stellt sich heraus, dass das Zauberwort hier "Preprozessor-Makro" ist. So wird es grafisch über die Benutzeroberfläche erstellt (Beachten Sie, dass dies wie in XCode 6.1 erfolgt):

 enter image description here

Hoffe, das hilft anderen Menschen in derselben Situation.

15
Steven de Salas

In meinem Fall habe ich gerade noch einmal die 'Capabilities'-Seite in den Projekteigenschaften überprüft und im entsprechenden APNS-Menü auf' Behoben 'geklickt. Jetzt muss es so aussehen  enter image description here

7
Vyacheslav

In meinem Fall hat folgende Übung funktioniert . Xcode 9.2

  1. Deaktiviert Automatically manage signing, der in Build Target > Signing angezeigt wird
  2. Importieren Sie das Bereitstellungsprofil manuell. 
2
Rohit Mandiwal

Ich hatte die gleiche Warnung und hier ist, wie ich es gelöst habe.

Wenn Sie Ihr Projekt archivieren, wird unter Berechtigungen, wenn Sie aps-environment nicht sehen und Ihre App Push-Benachrichtigungen verwendet, zuerst die in der Frage erwähnte Warnung angezeigt.

FIX SCHRITTE 

1- Stellen Sie sicher, dass Ihr Vertriebsprofil im Apple-Portal gültig ist. - Wenn dies nicht der Fall ist, generieren Sie es neu. - Wenn Ihr Verteilungsprofil gültig ist, navigieren Sie in XCode zu Preferences und klicken Sie auf View Details. Stellen Sie an dieser Stelle unter Provisioning-Profile sicher, dass Sie keine ungültigen Verteilungsbereitstellungsdateien haben. Wenn es ungültige gibt, klicken Sie mit der rechten Maustaste und verschieben Sie sie in den Papierkorb. Wenn Sie nicht über die gültige Version verfügen, laden Sie sie vom Portal herunter. - Gehen Sie zu Build-Einstellungen -> Codesignierung und wählen Sie das Verteilungsbereitstellungsprofil.

Wenn Sie zu diesem Zeitpunkt archivieren, können Sie in Ihren Berechtigungen die aps-Umgebung sehen, und die Warn-E-Mail wird nicht angezeigt.

2
neo

Ich habe eine Cordova-App, bei der ich bereits Benachrichtigungen hatte, diese aber aus der App entfernen wollte. Ich habe versucht, den obigen Antworten zu folgen, aber beim Hochladen des Builds ist dieses Problem immer noch aufgetreten. Mir wurde klar, dass ich ein Plugin installiert hatte, wer die Benachrichtigungseinstellung verwendet hat, und einige Einstellungen für Benachrichtigungen beibehalten haben.

Ich habe das Problem gelöst, indem ich die ios-Plattform vollständig cordova platform rm ios entfernt, sie erneut cordova platform add ios hinzugefügt und sichergestellt habe, dass das Plugin aus den ios.json- und fetch.json-Dateien entfernt wurde.

0
Lirianna