CloudKit sync#
The logbook lives on your iPhone, and iCloud quietly backs it up and shares it with your other devices on the same Apple ID. There is no Wake account, no sign-up and no Wake server, and logging never waits for sync.
How to use it#
Sign in to iCloud on the iPhone in Settings. There is nothing to switch on inside Wake.
Log as usual, online or offline. Every tap is saved on the phone first, and iCloud catches up when a connection is available.
To see your voyages on another device, open Wake there with the same Apple ID and give it a moment. In the two-device test the voyages appeared in about two seconds.
If a notice appears above the Helm / Voyages switch, you are not signed in to iCloud. Sign in, and the notice goes away by itself. Or tap the × to hide it until you next start the app.
To check that a voyage has made it across, open the Voyages tab on the second device. A voyage still in progress only shows there after it ends.
What happens behind the scenes#
The logbook on the phone is the source of truth. Every event is saved there before any GPS or network work, so a sync problem can never stop a log entry.
Sync runs on its own in the background, into your private iCloud database. Only your Apple ID can see it. There is no Wake server and no accounts. The decision is recorded in ADR 0001.
Builds run from Xcode on a development machine use a separate development iCloud container, so they never touch the data from TestFlight or the App Store.
The iCloud account status is checked each time Wake comes back to the foreground. If iCloud has no account, is restricted, or is temporarily unavailable, the notice reads: “Not signed in to iCloud — your log is saved on this iPhone but isn’t backing up.” It shows on both tabs and never blocks anything.
The stored fields are add-only after release: a stored field can never be renamed or removed, so new data has to be added alongside the old.
Known limits#
Sync is best-effort and the app shows no sync status, so a stalled sync is invisible. Check the other device before you rely on it as a backup.
Wake does not record why a sync or an account check failed, so a stalled sync leaves no trail to look at afterwards.
Two-device sync was verified on 2026-06-10 with an iPhone and an iPad on the same Apple ID, and the production schema was deployed the same day.
There is a reported iOS 26 bug in Apple’s sync that can stall or drop changes. It is outside our control, and it did not show up in that test. See the Apple Developer Forums thread 811675.
Positions and tracks are stored in your private iCloud, along with the events.
Deleting a voyage on one device can leave hidden leftover records behind. They are never shown, but they take up some space.
Where it lives#
ios/Wake/PersistenceController.swift, ios/Wake/WakeApp.swift, ios/Wake/Models/ (Voyage.swift, Event.swift, TrackPoint.swift, WakeSchemaV1.swift), ios/Wake/Services/ICloudAccountService.swift, ios/Wake/Views/ICloudNoticeBanner.swift