Используя Средства отладки iCloud

XCode, iOS и OS X включают инструменты, помогающие Вам проанализировать и интерпретировать изменения в iCloud на Вашем устройстве и в облаке. Решите общие проблемы интеграции с помощью информации в этой главе вместе с руководством в Поиске и устранении неисправностей.

Понимание Отчета iCloud

Отчет iCloud дает Вам подробный обзор контейнера повсеместности Вашего приложения. Временная шкала Действия Передачи обеспечивает широкий обзор изменений, передаваемых по сети, и раздел Documents перечисляет состояние отдельных файлов.

Интерпретация действия передачи

Отчет iCloud выводит на экран использование пропускной способности iCloud в течение долгого времени для Вашего приложения. Зеленые панели указывают, что журналы транзакций или другие разные запросы были отправлены от в настоящее время присоединяемой коллеги в iCloud, и синие панели указывают, что журналы транзакций и запросы были получены от iCloud. Вы используете временную шкалу Действия Передачи для:

  • Узнайте, когда Ваше приложение соберется получить событие iCloud

  • Проверьте, что Ваше приложение должным образом связывается с iCloud

  • Оптимизируйте частоту, и синхронизация Вашего контекста управляемого объекта сохраняет

Инициализация хранилища

При запуске приложения впервые Базовые Данные и система отправляют метаданные о персистентном хранилище к облаку. Это выведено на экран как единственная зеленая панель загрузки, как показано на рисунке 5-1 ниже. Поскольку это происходит, Базовые Данные зарегистрируют сообщение, содержащее “Используя локальное хранение: 1”, что означает, что Ваше приложение в настоящее время использует временное локальное персистентное хранилище.

  Инициализация Хранилища рисунка 5-1: Метаданные загружаются

После того, как iCloud заканчивает обрабатывать запрос, Базовые Данные создают поддерживающее iCloud персистентное хранилище и переходы к нему. Базовые Данные отправляют уведомления, описанные в iCloud, Выполняет Разовую Установку и регистрирует сообщение, содержащее “Используя локальное хранение: 0”, что означает, что Ваше приложение в настоящее время использует поддерживающее iCloud персистентное хранилище.

Если учетная запись iCloud уже имеет записи, сохраненные от других коллег, система загружает связанные журналы транзакций с iCloud в одном или более запросах, как показано на рисунке 5-2 ниже.

  Инициализация Хранилища рисунка 5-2: Журналы транзакций загружаются

Изменения содержания

Каждый раз Вы сохраняете контекст управляемого объекта, Базовые Записи данных изменения в журнале транзакций в контейнере повсеместности Вашего приложения. В контейнере обрабатывается журнал транзакций, и файл загружается на iCloud как показано на рисунке 5-3 ниже. Базовые Данные уведомляют Ваше приложение, также, как обсуждено в Базовых Изменениях Содержания Сообщений Данных от iCloud.

  Изменения Содержания рисунка 5-3: Журнал транзакций загружается

Базовые Данные создают журнал транзакций каждый раз, когда Вы сохраняете свой контекст управляемого объекта для обеспечения атомарности. Каждая транзакция загружается от контейнера повсеместности до iCloud в отдельном запросе, чтобы гарантировать, что каждый журнал транзакций сохраняется полностью в единственной работе. Когда Вы сохраняете слишком часто, Вы увеличиваете работу, которую другие коллеги выполняют для импорта изменений. Однако, когда Вы сохраняете слишком нечасто, большие журналы транзакций приводят к увеличенному использованию памяти. Например, на рисунке 5-4 ниже, большой кластер маленьких зеленых панелей указывает, что Ваше приложение сохраняет слишком часто. Можно читать больше об оптимизации в Методах наиболее успешной практики.

  Изменения Содержания рисунка 5-4: Высоко сохраните частоту

После того, как другие коллеги сохраняют изменения в iCloud, связанные транзакции загружаются на контейнер повсеместности Вашего приложения, как показано на рисунке 5-5 ниже.

  Изменения Содержания рисунка 5-5: Журналы транзакций загружаются

Контроль состояния документа

Раздел Documents Отчета iCloud выводит на экран состояние файлов в локальной копии Вашего приложения контейнера повсеместности, по сравнению с теми в копии в облаке. Таблица 5-1 описывает эти состояния документа. Данные Ядра файлов создают, подробность реализации, но можно обычно выводить состояние устройства путем сравнения числа журналов транзакций на двух устройствах и путем наблюдения изменений состояния файла.

Таблица 5-1  описания состояния документа iCloud

Состояние

Описание

Текущий

Самая актуальная версия файла находится в iCloud.

Сохраненный в облаке

Файл находится в iCloud.

Данные, не существующие

Файл еще не находится в iCloud.

Исключенный

Файл установлен не загрузить на iCloud.

Имеет версии

Файл имеет многократные версии.

Включение Журналирования Отладки iCloud

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

На iOS

  1. Установите Профиль Журналирования Отладки Хранения iCloud на своем устройстве на iOS.

  2. Перезапустите свое устройство.

  3. Воспроизведите проблему.

  4. Синхронизируйте свое устройство с iTunes.

  5. Получите файлы регистрации устройств iCloud от ~/Library/Logs/CrashReporter/MobileDevice/device-name/DiagnosticLogs.

  6. Откройте приложение Настроек и удалите профиль для выключения журналирования.

На OS X

  1. Откройте Terminal и работайте ubcontrol -k 7 позволять регистрировать.

  2. Получите журналы iCloud от ~/Library/Logs/Ubiquity.

  3. Откройте Terminal и работайте ubcontrol -k 1 выключить журналирование.