iCloud and Logbook App

Update from September 18, 2021 (revised on September 19, 2021 and December 5th 2021)

TLDR

Use from now on no iCloud in Logbook app! Starting with version 2.52 it will be also no longer possible technically. However there will be a new synchronisation feature available!

Do not use iCloud synchronization while recoring in background!

In the last few weeks, users have increasingly reported problems with the iCloud synchronization of logbook data. I was also able to reproduce some problems on my sailing trip last week and had to switch to the local database to prevent failures. That is why I strongly advise against actively using the iCloud synchronization during the trip!
However, it is possible to copy the data to the iCloud after the trip and then distribute it synchronously to all your devices.
This way it is also possible to make retrospectively adjustments to the records that synchronize between your devices. Problematic is just the automatic recording of a trip in the background while the iCloud synchronization is active. If you don't use the automatic recording (blue frame in the app), you won't have any problems.

Technical background

When I speak of iCloud synchronization, I actually mean the use of Core Data with Cloud Kit (introduced by Apple with iOS 13). The problem is that this synchronization has not worked reliably in the background recently. This means that a new entry is sometimes not uploaded to the iCloud, and even worse, iOS closes the logbook app in the background because iOS interferes with the background tasks of Core Data with Cloud Kit. As a developer, I cannot adjust or configure Core Data with Cloud Kit very well. I can turn it on or off, the functionality is provided by Apple.

These are the known issues

Recommended use of iCloud synchronization

If you want to use the iCloud synchronization, then please only for data storage, but not for recording on the water!

What needs to be understood in general

OK, how do I do it now so that there are no problems?

Repeat the following for each trip:
  1. You want to start a new trip and create record automatically
  2. Deactivate iCloud Sync (Logbook App > Settings > iCloud) on the device that you use for recording on the trip. And check it after restarting the app (gray switch).
  3. Use the logbook app as usual to record
  4. At the end of the trip, export your database (Tools > Export > SQLite) and select Save to Files and save the file either in iCloud Drive (or alternatively in the local folder if you don't have an iCloud Drive)
  5. Activate iCloud Sync again (Logbook app > Settings > iCloud). And check it after restarting the app (switch green).
  6. In the Files app, open the database you just exported with the logbook app and select the logbook to import.