iCloud: синхронизировать хранилище ключей-значений между iOS и tvOS

У меня есть приложение, работающее на iOS и tvOS. Я настроил синхронизацию настроек, используя хранилище значений ключей iCloud:

  • Версия iOS синхронизирует данные с помощью iCloud KVS. Это работает нормально.
  • Версия tvOS синхронизирует данные с помощью iCloud KVS. Тоже работает нормально.
  • Однако я не могу синхронизировать версии iOS и tvOS.

Я считаю, что правильно выполнил все шаги:

  • Тот же идентификатор приложения, тот же идентификатор пакета.
  • Одна и та же учетная запись iCloud вошла на все устройства.
  • Поле com.apple.developer.ubiquity-kvstore-identifier в правах идентичный ($(TeamIdentifierPrefix)$(CFBundleIdentifier)).
  • Имя ключа идентично
  • Оба приложения синхронизируются по сети (это не только локальный кеш).

У кого-нибудь работала синхронизация между iOS/ TVOS? Это вообще возможно? Спасибо за любой совет.

2 ответа

Решение

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

Я думаю, что у Apple есть проблема здесь, потому что я могу поделиться между iOS App и MacOS App без проблем, но когда я применяю те же процедуры и права к моему приложению tvOS, я не могу получить общие значения ключа. Я только что ответил на аналогичный вопрос, и полные результаты моего тестирования можно найти здесь: /questions/4749187/sinhronizatsiya-icloud-na-tvos/4749188#4749188

Выше вы упоминаете, что вы установили com.apple.developer.ubiquity-kvstore-identifier, но CloudKit - это все о контейнере по умолчанию. Вы должны убедиться, что ваше приложение также использует ваш основной общий контейнер. Вот инструкции Apple:

Другие вопросы по тегам