Ich habe Remote-Push-Benachrichtigungen integriert, erhalte jedoch folgende Warnung:
didReceiveRemoteNotification:fetchCompletionHandler:]
, aber Sie müssen immer noch "remote-notification
" zur Liste Ihrer unterstütztenUIBackgroundMode
s in Ihrem hinzufügenInfo.plist
.
Meine Xcode-Version ist 8.3.1. Ich möchte das wirklich hinzufügen Info.plist
. Ich habe auch einige Tutorials befolgt, aber sie haben dies auch nicht erwähnt. Was soll ich wirklich tun?
quelle
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
Funktion bezog, die zum Behandeln des Datenabrufs verwendet wird.Sie können auch die benötigte info.plist (Öffnen als -> Quellcode) bearbeiten und einfügen:
quelle
Tatsächlich müssen Sie UIBackgroundModes nicht zu .plist hinzufügen, um Remote-Benachrichtigungen zu verwenden.
Ich weiß, dass ich Erben ein wenig aufspalte (die andere Antwort ist meistens großartig, und vielleicht ist ab iOS 11 etwas neu), aber die Frage bezieht sich auf Push-Benachrichtigungen, die Hintergrundaktualisierungen erfordern, und das tun sie nicht.
Der Unterschied besteht darin, dass es zwei verschiedene Methoden gibt, die Benachrichtigungen im AppDelegate akzeptieren.
Für diesen Fall müssen Sie UIBackgroundModes nicht verwenden:
Das Obige ersetzt das ab iOS 11 veraltete:
Und dieser erfordert Hintergrundmodi:
Das Wichtigste dabei ist, dass die erstere (und die veraltete, die sie ersetzt hat) nur ausgeführt wird, wenn sich die App im Vordergrund befindet. Letzteres wird ausgeführt, wenn sich die App im Vordergrund ODER im Hintergrund befindet. Siehe die Spezifikation für dieses spezielle Nugget:
Wenn Sie Push-Benachrichtigungen benötigen, entscheiden Sie daher, ob Sie im Hintergrund ausgeführt werden müssen. Nur wenn Sie beide benötigen, sollten Sie die in der Warnung vorgeschlagene Methode implementieren.
quelle
Es ist mir sogar passiert, nachdem ich den Hintergrundmodus für Remote-Benachrichtigungen in den Funktionen eingestellt habe. Das Problem war, dass ich drei Ziele hatte, eines für die Produktion, eines für die Qualitätssicherung und eines für die Inszenierung. Ich musste in allen drei Zielen Remote-Benachrichtigungen festlegen, wodurch die Warnung behoben wurde.
quelle