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: