From 262dab8f9e67959fa29bf6e564f1ce640ad3f981 Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Wed, 15 Jul 2026 06:33:02 +0200 Subject: [PATCH] Skip local-only settings keys when enabling iCloud settings sync refreshFromiCloud already skipped isLocalOnly keys, but the enable-time paths did not: replaceWithiCloudData overwrote device-specific settings with another device's values, and syncToiCloud uploaded local-only keys to the ubiquitous store. Apply the same skip in both. --- Yattee/Core/Settings/SettingsManager+CloudSync.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Yattee/Core/Settings/SettingsManager+CloudSync.swift b/Yattee/Core/Settings/SettingsManager+CloudSync.swift index af7f912d..f88b2057 100644 --- a/Yattee/Core/Settings/SettingsManager+CloudSync.swift +++ b/Yattee/Core/Settings/SettingsManager+CloudSync.swift @@ -335,6 +335,11 @@ extension SettingsManager { // Copy all local settings to iCloud for key in SettingsKey.allCases { + // Skip local-only keys (device-specific settings that shouldn't sync) + if key.isLocalOnly { + continue + } + let pKey = platformKey(key) if let value = localDefaults.object(forKey: pKey) { ubiquitousStore.set(value, forKey: pKey) @@ -362,6 +367,11 @@ extension SettingsManager { // Copy all iCloud settings to local defaults for key in SettingsKey.allCases { + // Skip local-only keys (device-specific settings that shouldn't sync) + if key.isLocalOnly { + continue + } + // Skip protected keys that should preserve local values if keysToPreserve.contains(key) { continue