Wenn fette Apps sich gegenseitig auf die Füsse treten

Was tun, wenn iPhone-Apps beim Start ewig lang hängen­blei­ben oder auch abstür­zen? Eine Aus­lege­ord­nung, woran es liegen könnte – und was tun (oder nicht tun) kann.

Ich hatte es am iPhone mit einem lästigen Problem zu tun: Einige der Apps – nicht alle, aber eine Handvoll – haben sehr lange für den Start gebraucht oder sind hängen geblieben.

Natürlich habe ich versucht herauszufinden, was die Ursache sein könnte und wie man dieses im Alltag massiv störende Problem behebt. Um falschen Erwartungen vorzubeugen, gleich vorneweg das Eingeständnis, dass ich die Ursache nicht eindeutig ermitteln konnte. Ich habe klare Verdachtsmomente, aber zu meinem Bedauern kein Patentrezept für iOS-Nutzer, die von Apps mit Startschwierigkeiten betroffen sind.

Es gibt zum Glück auch eine gute Nachricht: Ich darf vermelden, dass sich das Problem von allein gelöst hat. Es war zwar hartnäckig und ist zwischenzeitlich zurückgekehrt. Aber es gibt klare Anzeichen, dass sich dieses Problem aussitzen lässt.

Schliesslich stehen die Chancen gut, dass meine Hinweise hier und allfällige Ergänzungen aus der Leserschaft bei der Aufklärung ähnlicher Fälle helfen. Darum die Bitte: Falls ihr das Problem kennt und Erkenntnisse beisteuern könnt, dann freue ich mich über einen Kommentar!

Betroffen sind Spiele und Medien-Apps

Also, hier die Details zu dieser Angelegenheit: Betroffen sind Apps, die eine beachtliche Dateigrösse und einen beträchtlichen Ressourcenhunger haben. Das Startproblem zeigte sich ausgeprägt bei Games wie Homescapes. Es trat auch bei Microsofts Solitaire Collection, Microsoft Sudoku und Slidey auf. Und in etwas geringerem Mass habe ich es auch bei Apps aus anderen Bereichen gesehen: bei Spotify, Netflix und bei Onedrive von Microsoft.

Betroffen sind Apps, die beim Start einen Splash-Screen anzeigen, d.h. ein Logo oder eine Animation, das dem Nutzer etwas zum Anschauen gibt, während er aufs vollständige Laden wartet (siehe dazu auch: Aus der Not eine Untugend gemacht). Das charakteristische Symptom bei den erwähnten Apps besteht darin, dass der Ladevorgang nicht über diesen Splash-Screen hinauskommt, sondern abgebrochen wird. Denn so viel wissen wir über iOS: Das Betriebssystem wartet nicht ewig, bis eine App in die Pötte kommt, sondern wirft sie aus dem Speicher, wenn der Vorgang nicht nach zwanzig Sekunden beendet ist.

Was tut man in einer solchen Situation?

Natürlich, man startet sein Gerät neu. Das hat in meinem Fall einige Male kurzfristig geholfen, doch keine dauerhafte Lösung gebracht. Und das iPhone alle zwei Stunden neu zu starten, ist auch keine Lösung.

Gibt es Verbindungsprobleme?

Ich habe als nächstes die im Beitrag Was hilft, wenn das WLAN im Hotel nicht funktioniert beschriebenen Massnahmen angewendet und NextDNS sowie das Privat Relay von Apple abgeschaltet. Denn beide Mechanismen sind dazu da, die Privatsphäre zu erhöhen, indem sie in den Netzwerkverkehr eingreifen. Meine Vermutung war, dass die Startprobleme daher rühren, dass Apps zu Trackingzwecken versuchen, gewisse Server zu kontaktieren und beim fruchtlosen Versuch, derlei Verbindungen aufzubauen, nicht steckenbleiben.

Diese Massnahme hat nicht geholfen. Und spätestens an dieser Stelle müssen wir bedauern konstatieren, wie eingeschränkt die Diagnosemöglichkeiten beim iPhone und iPad sind. Bei Windows hätten wir den Taskmanager eingesetzt, um zu sehen, ob sich Prozesse gegenseitig blockieren oder das Gerät irgendwie ausgelastet ist. Wir hätten einen Blick in die Konfigurationsdateien und die Cache-Verzeichnisse der betroffenen Apps geworfen. Doch das alles geht bei iOS nicht.

Aber immerhin haben wir die Logdateien zur Verfügung. Die finden sich in den Systemeinstellungen bei Datenschutz > Analyse & Verbesserungen > Analysedaten.

Die Logdateien – für Laien wenig aussagekräftig

Fehler 309? Aha.

Hier gibt es für jeden Absturz ein Eintrag. Der Nutzen dieser Protokolle (Endung .ips) wird dadurch geschmälert, dass sie als rohe Json-Dateien angezeigt werden. Für Nicht-Xcode-Entwickler sind sie kaum lesbar, und ein frei nutzbares Online-Analyse-Instrument habe ich nicht gefunden. Kämpft man sich durch die Informationen, findet man Angaben wie "bug_type" : "309", was ohne weitere Interpretationshilfe nicht weiterhilft.

Erkenntnis an dieser Stelle: die Logs sind eine Sackgasse.

Wie können wir weiter verfahren? Eine Möglichkeit bestünde darin, die fraglichen Apps zu löschen und neu zu installieren. Das empfehle ich im Beitrag So flickt man kaputte Smartphone-Apps. Bei Spiele-Apps muss man sich aber sicher sein, dass der Spielstand irgendwo gespeichert wurde, damit er durch diese Aktion nicht verloren geht.

Als Ultima Ratio würden wir unser Gerät zurücksetzen und im Anschluss neu einrichten. Wichtig wäre dabei, nicht auf die Datensicherung zurückzugreifen. Die Wahrscheinlichkeit ist gross, dass das Problem durch Unstimmigkeiten beim Benutzerprofil ausgelöst wird. Und diese Leichen im Keller werden durch das Backup neuerlich eingeschleppt.

Zurücksetzen? Nicht wegen «Homescapes»

Und ja: Das iPhone zurücksetzen und neu einrichten, macht eine Menge Arbeit. Da ich weder Lust noch Zeit hatte, habe ich darauf verzichtet. Da keine der betroffenen Apps wirklich lebensnotwendig war, hätte ich sie vorher einfach gelöscht, damit ich mich nicht mehr ärgern muss.

Doch wie eingangs erwähnt: Ich habe abgewartet und das Problem hat sich von allein gelöst. Inzwischen scheint es, dass dieser erfreuliche Zustand dauerhaft bleibt.

Meine Hypothese ist, dass ein temporäres Problem mit der Speicherverwaltung des iPhones aufgetreten ist. Es scheint so, dass das Telefon nicht rechtzeitig genügend freien Arbeitsspeicher bereitstellen konnte. Warum das normalerweise klappt, während ein paar Wochen aber Probleme verursachte, kann ich nicht sagen. Es kommen einige Möglichkeiten in Betracht: ein Fehler im Betriebssystem, ein missratener Optimierungsversuch von Apple oder ein Feldversuch.

Wenn wir uns allgemein fragen, warum Apps vom Betriebssystem gekillt werden, dann stossen wir auf technische Beiträge wie diesen hier: Er zählt als häufigste Ursachen Abstürze, Begrenzung der CPU-Ressourcen, den Watchdog, überschrittene Speicherlimits, «Speicherdruck» und eine Zeitüberschreitung bei Hintergrundaufgaben auf.

Zur Speicherverwaltung liefert Apple hier eine Erklärung:

iOS, iPad OS, Watch OS und tv OS verfügen über ein virtuelles Speichersystem, das sich darauf verlässt, dass alle Apps Speicher freigeben, wenn das Betriebssystem unter Speicherdruck gerät, d. h. wenn der verfügbare Speicher zu gering ist, dass das System die Anforderungen aller laufenden Apps erfüllen könnte. Bei Speicherknappheit geben Apps nach einer entsprechenden Benachrichtigung Speicher frei.

Wenn alle laufenden Anwendungen genug Gesamtspeicher freigeben, um den Speicherdruck zu lindern, kann Ihre App weiter ausgeführt werden. Wenn der Speicherdruck jedoch anhält, weil die Anwendungen nicht genug Speicher freigegeben haben, beendet das System die Apps. Dies ist ein Jetsam-Ereignis: Das System erstellt einen Jetsam-Ereignisbericht mit Angaben, warum es sich für die Beendigung einer Anwendung entschieden hat.

Wohl ein verklemmtes Speichermanagement

Kann das Zufall sein? Die betroffenen Apps tauchen häufig in Apples Berichten auf, nachdem der Speicher bereinigt wurde.

Das ist aufschlussreich, zumal es bei meinem iPhone pro Tag teils Dutzende solcher Jetsam-Ereignisse verzeichnet sind. Einige Stichproben zeigen, dass häufig genau die Apps betroffen sind, die die Startprobleme aufweisen.

Daraus leite ich meine oben geäusserte These ab, dass das iPhone Probleme mit dem Speichermanagement hatte. Normalerweise gelingt es dem System, genügend Speicher für ein dickes Spiel freizuschaufeln – aber anscheinend nicht immer.

Desktop-Betriebssysteme federn derlei Probleme über eine Auslagerungsdatei ab, mit der der Arbeitsspeicher virtuell vergrössert wird. Bei iOS gibt es den bislang nicht, aber Apple will diese Methode beim iPad mit iPad OS 16 einführen. Es ist darum denkbar, dass in Hinblick auf diese Neuerung auch bei iOS entsprechende Testläufe stattgefunden haben.

Wie auch immer: Ich würde darauf wetten, dass sich derlei Ärger durch eine etwas Ressourcen-schonendere Programmierweise problemlos vermeiden lassen würde …

Beitragsbild: Hier würde ich klaustrophobisch werden – und offensichtlich geht es manchen Apps in meinem iPhone-Speicher auch so (Chuttersnap, Unsplash-Lizenz).

Kommentar verfassen