Почему мои 2 устройства не видят одинаковые ключи / значения в NSUbiquitousKeyValueStore?

#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 идентификаторы