Синхронизация iCloud на tvOS
Кому-нибудь удалось заставить iCloud работать над tvOS?
Я использую key-value-storage, и он успешно сохраняет все в iCloud. Однако он не синхронизирует данные между iOS-приложением и tvOS-приложением. Я использую один и тот же идентификатор пакета для обоих приложений.
Кто-нибудь сталкивался с такой же проблемой?
1 ответ
Таким образом, похоже, что у Apple может быть проблема здесь на стороне tvOS, потому что если я буду следовать инструкциям Apple по настройке общего хранилища значений ключей для нескольких приложений, я смогу делиться между iOS App и приложением MacOS, но не с приложением tvOS, используя точно такая же настройка.
Ниже приведены мои результаты:
Инструкция Apple, которую я использовал 1-й:
Итак, CloudKit - это все о контейнере по умолчанию, а не ID пакета приложения напрямую. Итак, я настроил свое Основное приложение для iOS с контейнером по умолчанию, который станет контейнером обмена ключами и значениями.
Вот мой файл первичных прав: Затем я сохранил две пары NSUbiquitousKeyValueStore в хранилище по умолчанию и получил значения:
NSUbiquitousKeyValueStore.defaultStore().dictionaryRepresentation
Итак, в моем приложении macOS я также включаю CloudKit, удаляю контейнер по умолчанию и устанавливаю его в качестве контейнера первичных приложений iOS. Затем в файле " Права" я вручную настраиваю com.apple.developer.ubiquity-kvstore-identifier
включить идентификатор пакета основного приложения:
Снимите флажок с контейнера по умолчанию и переключите Primaries:
Вот мой файл Secondary macOS Entitlements:
Затем я запускаю приложение macOS и presto, у меня есть пары ключ-значение из основного хранилища значений ключа по умолчанию и извлекаются значения easy-peasy:
NSUbiquitousKeyValueStore.defaultStore().dictionaryRepresentation
Если затем я сделаю ОДНУ ТОЧНЫЕ ИЗМЕНЕНИЯ для своего приложения tvOS, defaultStore() отобразится как пустое, и я не смогу поделиться им с приложением iOS и macOS.