Проблемы с синхронизацией NSUbiquitousKeyValueStore

У меня нет ничего, кроме проблем с NSUbiquitousKeyValueStore и его надежной синхронизацией между двумя устройствами. Это начинает сводить меня с ума. Безумный.

Я смотрю, как мой код вызывает:

[[NSUbiquitousKeyValueStore defaultStore] setObject:_someData forKey:@"SomeData"];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];

Но чаще всего данные никогда не отображаются на другом устройстве.

Я видел, как он синхронизировался в течение нескольких секунд, а в других случаях я ждал час и никогда не видел синхронизации. Я подключаю устройства к xcode и начинаю отладку, и иногда данные внезапно появляются, а иногда нет. Иногда это так.

После этого звонка, выхода и перезапуска приложения я вижу старые данные, если я их читаю, а не новые данные, которые я якобы только что опубликовал. На том же устройстве.

Когда приложение запускается, я звоню на:

_someData = [[NSUbiquitousKeyValueStore defaultStore] stringForKey:@"SomeData"];

Я предполагаю, что нет кода инициализации, который нужно запустить. Ни один пример, который я нашел, не подходит.

Когда это работает, это работает очень хорошо.

Затем сегодня вечером я просматривал журналы устройства и обнаружил это сразу после моего последнего выхода (и попытки отправить данные):

Jul  8 21:32:03 unknown syncdefaultsd[17296] <Warning>: Error writing storage for com.mycompany.myapp to /private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences/com.mycompany.myapp.plist: Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed. (Cocoa error 4.)" UserInfo=0xde80d40 {NSFilePath=/private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences, NSUnderlyingError=0xde80b20"The operation couldn’t becompleted. No such file or directory"}

Этот путь не является допустимым путем из моей песочницы приложений (неверный GUID ), поэтому мне интересно, является ли это корнем моих проблем. Я часто удаляю и повторно -устанавливаю приложение во время разработки, поэтому мне интересно, есть ли где-то кешированный старый путь, и он пытается синхронизировать эти данные. Есть ли способ очистить это?

Я знаю, что все мои права настроены правильно, поскольку иногда это работает.

[[NSUbiquitousKeyValueStore defaultStore] synchronize]возвращается YES.

Кто-нибудь еще видел эту проблему или эту ошибку? Есть ли что-то еще, что мне нужно делать, когда мое приложение запускается и когда я отправляю данные в облако? Согласно документам и примерам, это кажется довольно простым.

5
задан Roger Gilbrat 9 July 2012 в 05:31
поделиться