#ios #swift #icloud #key-value-store
#iOS #swift #icloud #хранилище ключей-значений
Вопрос:
Я тестирую свое приложение, которое хранит настройки в UserDefaults и NSUbiquitousKeyValueStore. Кажется, все работает правильно. Код сохраняет и извлекает значения из обоих хранилищ. Я проверяю FileManager.default.ubiquityIdentityToken, чтобы убедиться, что приложение «подключено» к iCloud. Хранилище ключ-значение проверяется в возможностях iCloud. Устройства — это iPad Pro и iPhone 11 Pro Max.
Проблема в том, что два устройства, похоже, не видят одно и то же хранилище значений ключей. Каждый видит только то, что он сохранил. Я добавил вызовы store.synchronize, и это не имело видимого эффекта.
Это приложение не опубликовано. Может ли это быть проблемой? Имеют ли неопубликованные приложения одинаковый доступ к iCloud?
Есть ли способ просмотреть хранилище iCloud KV приложения независимо от приложения? Я не нашел ни одного.
Комментарии:
1. вы пытались зарегистрироваться для
NSUbiquitousKeyValueStore.didChangeExternallyNotification
получения уведомлений для отладки, если какие-либо изменения действительно зарегистрированы?2. @witekbobrowski нет, но я не уверен, что это добавило бы. Если я не получаю уведомления, я нахожусь в такой же ситуации. Если я это сделаю, то я все еще понятия не имею, почему я не могу видеть новые записи.
3. Оба устройства вошли в одну учетную запись iCloud?
4. Да, оба устройства с одним и тем же идентификатором Apple ID, моей личной учетной записью. Кроме того, я подключил симулятор к той же учетной записи. Те же результаты в симуляторе.
5. То же самое здесь я использовал один и тот же Apple id на двух устройствах, и они дают разные
FileManager.default.ubiquityIdentityToken
идентификаторы