Silent Push ist eine Art iOS-Push-Benachrichtigung, die ohne jegliche Anzeige für den Benutzer und ohne Tonbegleitung an das Gerät geliefert wird. Der Hauptzweck einer stillen Benachrichtigung ist die Hintergrunddatensynchronisation, die Aktualisierung von Inhalten und die Ausführung kurzer Aufgaben, die keine Aufmerksamkeit des Benutzers erfordern. Laut Apple Developer Documentation, 2026 aktiviert Silent Push die App für 30 Sekunden im Hintergrund, um eingehende Daten zu verarbeiten, wonach das System das Gerät zur Schonung des Akkus in den Schlafmodus versetzt.
Wichtige Punkte
Silent Push ist ein iOS-Mechanismus, der Daten ohne visuelle Benachrichtigung an das Gerät liefert. Im Gegensatz zu einem Standard-Push, der ein Banner anzeigt, einen Ton abspielt und im Mitteilungszentrum erscheint, „weckt“ ein Silent Push die App im Hintergrund und übergibt ihr Daten zur Verarbeitung. Der Benutzer erfährt nie von der Zustellung einer solchen Benachrichtigung — das Ergebnis ist aktualisierter Inhalt beim nächsten Öffnen der App.
Der Hauptunterschied liegt im JSON-Payload: Ein Silent Push enthält das Flag content-available: 1 und enthält KEIN alert, sound oder badge. Eine Standardbenachrichtigung mit alert wird immer dem Benutzer angezeigt, unabhängig von content-available. Silent Push funktioniert nur mit content-available: 1 und ohne alert — wenn Sie alert hinzufügen, zeigt das System die Benachrichtigung auch mit dem Hintergrundzustellungs-Flag an.
Stille Benachrichtigungen sind unerlässlich für Szenarien, in denen Daten beim Öffnen der App aktuell sein müssen, der Benutzer aber nicht abgelenkt werden sollte. Beispiele: Aktualisieren des Newsfeeds im Hintergrund, Synchronisieren von Abonnements, Herunterladen neuer Inhalte für den Offline-Zugriff, Aktualisieren von Widgets, Ungültigmachen des Caches. Silent Push wird auch verwendet, um die App vor einer erwarteten Benutzeraktion „aufzuwärmen“.
Die Zustellung von Silent Push unterscheidet sich erheblich von regulären Benachrichtigungen und folgt Regeln zur Energieoptimierung. Das iOS-System empfängt die Push-Anfrage von APNS, stellt fest, dass es sich um einen Silent Push handelt (content-available: 1), und entscheidet basierend auf mehreren Faktoren über die Zustellung: Akkustand, Energiesparmodus, Häufigkeit vorheriger Silent Pushs, App-Aktivität und aktuelle CPU-Auslastung.
Auf Geräten mit Apple M-Chip und iOS 15+ integriert sich Silent Push in den Power Nap-Mechanismus, der das Gerät regelmäßig für Hintergrundaufgaben aufweckt. Power Nap bündelt mehrere Silent Pushs in eine Aktivitätsperiode, wodurch der Gesamtstromverbrauch gesenkt wird. Der Entwickler kann Power Nap nicht direkt steuern — das System trifft Entscheidungen automatisch basierend auf dem Benutzerverhalten und der App-Nutzungshistorie.
Wenn das System einen Silent Push zustellt, erhält die App einen Aufruf von application(_:didReceiveRemoteNotification:fetchCompletionHandler:) im AppDelegate. Der Entwickler muss den Completion Handler innerhalb von 30 Sekunden aufrufen und das korrekte Ergebnis (UIBackgroundFetchResult) übergeben. Wenn die Verarbeitung nicht rechtzeitig abgeschlossen wird, kann das System die Häufigkeit von Silent Pushs für diese App einschränken oder deren Zustellung ganz einstellen.
// Verarbeitung von Silent Push im AppDelegate
func application(
_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler:
@escaping (UIBackgroundFetchResult) -> Void
) {
guard let type = userInfo["sync-type"] as? String
else {
completionHandler(.failed)
return
}
if type == "news-feed" {
NewsFeedSyncService().sync { success in
completionHandler(success ? .newData : .failed)
}
} else if type == "cache-invalidate" {
CacheManager.shared.invalidateAll()
completionHandler(.newData)
} else {
completionHandler(.noData)
}
}
Apple veröffentlicht keine genauen Abstände zwischen Silent Pushs, aber basierend auf Tests und Dokumentation wird empfohlen, nicht mehr als 2–3 stille Benachrichtigungen pro Stunde pro Gerät zu senden. Bei häufigerem Senden beginnt das System, Silent Pushs zu ignorieren, und die Daten werden nicht mehr zugestellt. Wenn eine häufigere Synchronisation erforderlich ist, erwägen Sie die Verwendung von URLSession mit Hintergrundkonfiguration oder VoIP-Push.
Silent Push wird in einer Vielzahl von Aufgaben eingesetzt, bei denen Daten ohne aktive Benutzerbeteiligung aktuell sein müssen. Sehen wir uns die effektivsten Anwendungsfälle dieses Mechanismus in realen iOS-Apps an.
Nachrichten-Apps, Reader und Reiseanwendungen verwenden Silent Push, um neue Inhalte im Hintergrund herunterzuladen. Wenn der Benutzer die App öffnet, sind die Daten bereits geladen und auch ohne Internetverbindung verfügbar. Dieser Ansatz verbessert die Benutzererfahrung drastisch — leere Ladebildschirme verschwinden und Inhalte werden sofort angezeigt. Der Server sendet einen Silent Push, wenn neue Artikel erscheinen, und die App lädt sie im Hintergrund für die Offline-Lektüre herunter.
iOS WidgetKit aktualisiert Widgets nach einem Zeitplan, aber für sofortige Aktualisierungen nach Änderungen der Serverseite wird Silent Push verwendet. Die App im Hintergrund verarbeitet den Silent Push, aktualisiert den lokalen Datenspeicher für Widgets und aktualisiert die Timeline zwangsweise über WidgetCenter. Der Benutzer sieht aktuelle Informationen auf dem Widget, ohne die App zu öffnen — Wechselkurse, Wettervorhersage, Lieferstatus.
Wenn der Server kritische Daten aktualisiert (z. B. Preisregeln, verfügbare Funktionen für Premium-Benutzer), ermöglicht Silent Push die sofortige Invalidierung des lokalen Caches. Beim nächsten Öffnen lädt die App frische Daten vom Server, anstatt veralteten Cache zu verwenden. Dies ist besonders relevant für Apps mit kostenpflichtigen Inhalten oder Abonnements.
In einigen Szenarien muss das Badge auf dem App-Symbol aktualisiert werden, ohne eine Benachrichtigung anzuzeigen. Ein Silent Push mit dem Badge-Feld im Payload ermöglicht das Setzen des gewünschten Zählerwerts, ohne den Benutzer mit einem Banner zu stören. Beispielsweise kann eine Chat-App das Badge mit der Anzahl ungelesener Nachrichten aktualisieren, ohne jede neue Nachricht als Benachrichtigung anzuzeigen, wenn der Benutzer bereits in der App ist.
Für den korrekten Betrieb von Silent Push ist eine Konfiguration auf drei Ebenen erforderlich: das Xcode-Projekt, der JSON-Payload auf dem Server und der Verarbeitungscode in der App. Jede Ebene ist entscheidend: Das Überspringen eines Schritts führt dazu, dass die Benachrichtigung als normale zugestellt wird oder gar nicht zugestellt wird.
In Xcode müssen Sie die Funktion Push Notifications und Background Modes mit dem aktivierten Kontrollkästchen Remote notifications aktivieren. Push Notifications generiert ein Zertifikat für APNS, während Remote notifications in Background Modes dem System ermöglicht, die App beim Empfang eines Silent Push zu aktivieren. Ohne Remote notifications wird der Silent Push zwar zugestellt, aber die App wird nicht im Hintergrund aktiviert und die Daten werden nicht verarbeitet.
Ein Silent-Push-Payload muss den aps-Schlüssel mit content-available: 1 enthalten und darf KEIN alert, sound oder badge enthalten. Benutzerdefinierte Felder werden auf derselben Ebene wie aps übergeben und enthalten Daten zur Verarbeitung: Operationstyp, Objektkennungen, Metadaten. Ein Payload ohne content-available wird als normale Benachrichtigung behandelt; mit alert wird sie auch mit content-available als normal behandelt.
{
"aps": {
"content-available": 1
},
"sync-type": "news-feed",
"last-article-id": "article_8521",
"priority": "high"
}
Beim Empfang eines Silent Push ruft iOS application(_:didReceiveRemoteNotification:fetchCompletionHandler:) auf, bevor die App sichtbar wird. In dieser Methode müssen Sie userInfo analysieren, die erforderliche Arbeit durchführen (Netzwerkanfragen, Core Data-Schreibvorgänge, Cache-Aktualisierungen) und immer den completionHandler mit dem korrekten Ergebnis innerhalb von 30 Sekunden aufrufen. Das Nichtaufrufen des completionHandler wird vom System als Fehler betrachtet und beeinflusst die Häufigkeit zukünftiger Silent Pushs.
Silent Push ist kein zuverlässiger Datenübermittlungskanal für kritische Vorgänge — es ist ein Optimierungsmechanismus, keine garantierte Synchronisation. Der Entwickler muss die Einschränkungen verstehen und das System so entwerfen, dass die App sowohl mit als auch ohne Silent Push korrekt funktioniert.
iOS garantiert nicht die Zustellung jedes Silent Push. Das System kann die Zustellung verzögern oder abbrechen, wenn der Akkustand niedrig ist (unter 20%), im Energiesparmodus, nach häufigen vorherigen Silent Pushs oder wenn die App längere Zeit nicht genutzt wurde. Durchschnittliche Zustellungsstatistiken laut Apple: Etwa 70–80% der Silent Pushs werden innerhalb von 5 Minuten zugestellt, der Rest kann verzögert werden oder verloren gehen.
Apple empfiehlt, mehrere Regeln für die effektive Nutzung von Silent Push zu befolgen. Senden Sie nicht mehr als 2–3 Silent Pushs pro Stunde pro Gerät — die Überschreitung des Limits führt zur Blockierung. Verwenden Sie ein kompaktes Payload: Die minimale Payload-Größe beschleunigt die Verarbeitung und reduziert die Netzwerklast. Rufen Sie den completionHandler immer so schnell wie möglich auf: Je länger die Verarbeitung dauert, desto höher ist die Wahrscheinlichkeit, dass das System Silent Pushs in Zukunft einschränkt.
Für Szenarien, die eine garantierte Zustellung oder mehr Verarbeitungszeit erfordern, ziehen Sie Alternativen in Betracht. VoIP-Push (PushKit) garantiert die Zustellung und gibt mehr Zeit, ist aber nur für VoIP-Anwendungen vorgesehen. Background Fetch (UIApplication background fetch) wird vom System nach einem Zeitplan gestartet, kann aber nicht vom Server initiiert werden. WebSocket hält eine permanente Verbindung aufrecht, verbraucht aber mehr Akku und ist nicht für alle App-Typen geeignet.
Verwenden Sie zur Fehlersuche von Silent Push die Console.app auf dem Mac und filtern Sie nach dem App-Namen. Das System protokolliert jeden Silent Push mit dem Label „background task“ und gibt an, ob die Verarbeitung erfolgreich war. Auf einem Gerät überprüfen Sie dies über Einstellungen → Entwickler → Hintergrundmodus-Protokollierung. Die serverseitige Verfolgung erfolgt über den APNS Feedback Service, um nicht zugestellte Benachrichtigungen zu identifizieren.
Häufig gestellte Fragen
Silent Push wird dem Benutzer nicht angezeigt, gibt keinen Ton wieder und erscheint nicht im Mitteilungszentrum. Sein Zweck ist es, die App im Hintergrund zur Datensynchronisation zu aktivieren. Ein regulärer Push zeigt immer ein Banner an und kann Ton und Badge enthalten.
Die App hat 30 Sekunden Zeit, um die Hintergrundaufgabe abzuschließen. Nach dem Aufruf des completionHandler versetzt das System das Gerät in den Schlafmodus. Wenn der completionHandler nicht rechtzeitig aufgerufen wird, kann das System die Zustellung von Silent Pushs an diese App einstellen.
Das System kann die Zustellung verzögern, wenn der Akku schwach ist, im Energiesparmodus, nach häufigem Senden von Silent Pushs oder wenn die App längere Zeit nicht genutzt wurde. Dies ist normales iOS-Verhalten, nicht im Zusammenhang mit Implementierungsfehlern.
Ja, Sie können content-available: 1 zusammen mit alert angeben — in diesem Fall wird die Benachrichtigung dem Benutzer angezeigt und die App erhält zusätzlich eine Hintergrundaktivierung. Aber wenn die Aufgabe nur die Hintergrundsynchronisation ohne Anzeige ist, darf alert nicht enthalten sein.
Verwenden Sie die Console.app auf dem Mac, um die Protokolle der Hintergrundaufgaben anzuzeigen. Senden Sie einen Test-Silent-Push über APNS und überprüfen Sie, ob didReceiveRemoteNotification mit dem korrekten completionHandler aufgerufen wird. Verwenden Sie in Xcode den Simulator mit Simulation des Hintergrundmodus.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch