diff --git a/Signal/src/util/OWSBackup.m b/Signal/src/util/OWSBackup.m index 09a9dfb9d..b0ce065a9 100644 --- a/Signal/src/util/OWSBackup.m +++ b/Signal/src/util/OWSBackup.m @@ -754,6 +754,11 @@ NSString *const Keychain_ImportBackupKey = @"ImportBackupKey"; return NO; } + // Clear out any existing keys in this instance of NSUserDefaults. + for (NSString *key in userDefaults.dictionaryRepresentation) { + [userDefaults removeObjectForKey:key]; + } + // TODO: this doesn't yet remove any keys, so you end up with the "union". for (NSString *key in dictionary) { id value = dictionary[key]; @@ -761,6 +766,8 @@ NSString *const Keychain_ImportBackupKey = @"ImportBackupKey"; [userDefaults setObject:value forKey:key]; } + [userDefaults synchronize]; + return YES; }