iCloud und Logbuch App
Update vom 18.09.2021 (überarbeitet am 19.09.2021 und 05.12.2021)TLDR
Verwende ab sofort kein iCloud mehr in der Logbuch App. Ab Version 2.52 wird das auch technisch nicht mehr gehen. Es gibt dafür aber dann eine andere Lösung mit mehr Features!iCloud synchronisierung nicht zum aufzeichnen nutzen!
Es ist aber durchaus möglich die Daten nach dem Törn in die iCloud zu kopieren und dort dann synchron auf alle Deine Geräte zu verteilen. Dort ist es dann auch möglich Anpassungen an den Einträgen durchzuführen die sich sauber synchronisieren zwischen Deinen Geräten. Lediglich die automatische Aufzeichnung eines Törns im Hintergrund während die iCloud synchronisierung aktiv ist, führt zu Problemen. Wenn Du die automatische Aufzeichnung (blauer Rahmen in der App) nicht nutzt, wirst Du keine Probleme bekommen.
Technischer Hintergrund
Wenn ich von iCloud synchronisierung spreche meine ich eigentlich die Nutzung von Core Data mit Cloud Kit (wurde mit iOS 13 von Apple vorgestellt und eingeführt). Das Problem ist, dass diese synchronisierung seit einiger Zeit nicht mehr zuverlässig im Hintergrund funktioniert. Dies führt dazu, dass der Upload eines neuen Eintrags in die iCloud teilweise nicht stattfindet, und noch schlimmer, iOS die Logbuch App im Hintergrund beendet, weil iOS sich an den Hintergrund Tasks von Core Data mit Cloud Kit stört. Als Entwickler kann ich keinen Einfluß auf Core Data mit Cloud Kit nehmen. Ich kann es einschalten oder ausschalten, die funktionalität stellt Apple.Dies sind die bekannten Probleme
- Die App wird von iOS beendet wenn sie im Hintergrund aufzeichnen sollte, und es fehlen darum Einträge
- Neue Einträge werden während die Logbuch App im Hintergrund ist nicht in die iCloud hochgeladen sind aber lokal sichtbar. Auf einem Zweitgerät kommen sie aber nie an. Irgendwann löscht iCloud diese Einträge auch vom ersten Gerät, und die Daten sind für immer verloren.
Empfohlene Nuzung der iCloud synchronisierung
Wenn Du die iCloud synchronisierung nutzen willst, dann bitte nur zur Datenhaltung, nicht aber zum aufzeichnen auf dem Wasser!Was es generell zu verstehen gilt
- Die Technik dahinter ist die gleiche die Apple verwendet um Deine Notizen, Deine Erinnerungen, Kontakte, Bilder, etc. über iCloud über mehrere Geräten zu synchronisieren. Wenn also diese Technik für Dich schon nicht funktioniert, dann lass diese Funktion der Logbuch auch generell deaktiviert.
- Verwende die iCloud Synchronisierung nie während Du im Hintergrund automatisch Deine Einträge mit der Loguch App erstellst. (blauer Rahmen)
- Die Standardeinstellung in der Logbuch App ist, dass die iCloud synchroniserung aus ist.
- Du musst auf allen Geräten mit der gleichen Apple ID bei iCloud angemeldet sein
- Mit Internet kann es bis zu 20 Sekunden dauern bis ein Datensatz oder eine Änderung auf das andere Gerät synchronisiert wurde.
- Du kannst nur die gesamte Datenbank lokal oder iCloud synchronisiert verwenden. Nicht pro Logbuch.
- Zum aktivieren gehe in der Logbuch App in die Einstellungen > iCloud > und aktiviere den Kippschalter (grün)
- Nach dem aktivieren der iCloud Datenbank wird die App beendet und nach erneutem öffnen findest Du eine leere Datenbank vor, diese ist jetzt aber dann synchronisiert in iCloud
- Wenn Du iCloud in den Einstellungen wieder deaktivierst, hast Du wieder die lokale Datenbank von vorher.
- Du kannst problemlos zwischen den beiden Varianten hin und her wechseln.
- Beim aktivieren oder deaktivieren der iCloud Funktion muss die App neu gestartet werden, manchmal kam die Änderung nicht an und es ist so als hätte man den Schalter unter Einstellungen > iCloud nie betätigt. Einfach noch mal probieren.
OK, und wie mache ich es jetzt, so dass es keine Probleme gibt?
Wiederhole folgendes für jeden Törn- Du willst einen neuen Törn starten und automatisch aufzeichnen
- Deaktiviere iCloud Sync (Logbuch App > Einstellungen > iCloud) auf dem Gerät das Du auf dem Törn zur Aufzeichnung benutzt. Und prüfe es nach dem App neustart (Schalter grau).
- Nutze die Logbuch App nun wie üblich zum aufzeichnen
- Am Ende des Törns, exportiere Deine Datenbank (Hilfswerkzeuge > Export > SQLite) und wähle In Dateien sichern und speichere die Datei entweder in iCloud Drive (oder alternativ im lokalen Ordner wenn Du kein iCloud Drive haben solltest)
- Aktiviere iCloud Sync wieder (Logbuch App > Einstellungen > iCloud). Und prüfe es nach dem App neustart (Schalter grün).
- Öffne in der Dateien App die eben exportierte Datenbank mit der Logbuch App und wähle das Logbuch zum imporen aus.