Принуждение или "поощрение" iCloud для загрузки изменений в файл
У меня есть приложение Mac и iOS, которое делится данными с помощью iCloud через один файл "shoebox".
В большинстве случаев изменения правильно синхронизируются эффективным и оперативным образом. Тем не менее, каждый раз в то время (особенно, прямо сейчас) изменения, которые я делаю на одном устройстве, просто сидят там.
Я внес изменения на своем Mac в общий файл данных, и данные были сохранены на диск. Тем не менее, я не знаю, является ли это системным сбоем загрузки данных в iCloud или сбой устройства iOS для проверки новых данных, но я сплевываю большие пальцы.
![iCloud Status on Phone]()
Ниже приведен файл 5KB, который должен меняться. Независимо от того, сколько изменений я внес в приложение Mac, каждый раз во время тестирования iCloud просто прекратит синхронизацию изменений. Если я уйду в течение 20 минут и вернусь, это может снова начаться.
Далее: Если я запустил приложение Mac в Xcode и слежу за тем же файлом, даже если я вношу изменения в файл и могу подтвердить, что файл на диске (в Finder/Terminal) на самом деле меняется, панель iCloud в Xcode не очень быстро подбирает эти изменения:
![iCloud Status on Mac]()
Обратите внимание, что тот же самый файл 5KB изменил на моей локальной файловой системе на моем Mac (в 9:01), но iCloud просто не подбирает его. В этом файле есть фактические изменения содержимого, а не изменение даты изменения.
Итак, я хотел бы найти способ либо:
-
Запустить синхронизацию программно или даже с помощью Xcode. Я знаю, что синхронизацию iCloud можно запускать с помощью симулятора, но это работает только при тестировании на iOS, и я предпочитаю проводить тестирование на самом аппаратном уровне. Или,
-
Определите, кто (или что) "виноват" за нераспространенные данные. Я с самого начала следил за документами iCloud, гарантируя, что я использую скоординированные записи для сохранения изменений и т.д. Это очень прерывистая вещь, когда iCloud будет дремать, и делает тестирование очень расстраивающим.
Ответы
Ответ 1
Я не думаю, что вы можете инициировать синхронизацию выбранных файлов, но вы можете использовать этот инструмент "brctl", чтобы узнать, что происходит под капотом (или диагностировать) (на OSX), чтобы диагностировать, что это может быть.
команда commant line:
$ brctl
например, используйте его так:
brctl log --wait --shorten
или диагностика brctl
Ответ 2
Я понял, что при переносе любого хранилища в ваш существующий магазин iCloud хранилище iCloud добавляет эти данные и синхронизирует их с версией в iCloud. Поэтому я переношу пустой магазин в мой существующий магазин iCloud, и я принудительно синхронизировал его!