Включение CloudKit в приложении

CloudKit является службой приложения, доступной только приложениям, распределенным через App Store Mac и App Store. CloudKit требует дополнительной конфигурации в Вашем проекте XCode. Ваше приложение должно быть настроено, и код подписывается для доступа к CloudKit. Для предотвращения проблем подписывания кода включите CloudKit с помощью области Capabilities в XCode. Не должно быть никакой потребности в Вас отредактировать права непосредственно в Центре XCode или Элемента.

О контейнерах и базах данных

У многократных приложений и пользователей есть доступ к iCloud, но данные являются отдельными и инкапсулированными в вызванных контейнерах разделов. К контейнерам, принадлежащим Вашим приложениям, не могут получить доступ приложения от другого разработчика. Однако Ваши приложения могут совместно использовать контейнеры. Многократные приложения могут совместно использовать тот же контейнер, и одно приложение может использовать многократные контейнеры. Существует один контейнер по умолчанию на приложение, но можно создать дополнительные пользовательские контейнеры. Идентификатор для контейнера по умолчанию соответствует пакету приложения ID. Другой контейнерный IDs Вы указываете потребность быть уникальными через все учетные записи разработчика. Контейнеры не могут быть удалены.

../Art/containers_2x.png

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

../Art/databases_2x.png

Установка

Для выполнения всех шагов в этом документе Вам нужно:

Проверьте выполнение этих задач, прежде чем Вы начнете использовать CloudKit. Для поэтапных инструкций считайте Быстрый запуск Распределения приложений.

Задача

../Art/checkbox_checked_2x.png

Присоединитесь к Программе Разработчика Программы или Mac Разработчика iOS.

../Art/checkbox_checked_2x.png

Создайте проект XCode, создающий и работающий.

../Art/checkbox_checked_2x.png

Добавьте свой Apple ID к предпочтениям Учетных записей.

../Art/checkbox_checked_2x.png

Создайте свою команду, настраивающую профиль:

  • Для приложений Mac выберите Mac App Store в качестве идентификационных данных подписания.

  • Выберите свою команду из всплывающего меню Команды.

  • Нажмите Fix Issue.

../Art/checkbox_checked_2x.png

Для приложений Mac включите Тестовую среду приложения в области Capabilities.

Если Вы успешно выполняете предыдущие задачи, кнопка сообщение об ошибке и Fix Issue ниже всплывающего меню Команды в области General исчезает. Снимок экрана ниже шоу область General для приложения для iOS, когда успешно создаются активы подписывания кода.

../Art/2_create_teamprofile_2x.png

Для поиска и устранения неисправностей подписывания кода и настройки считайте Поиск и устранение неисправностей в Руководстве по Распределению приложений.

Включите iCloud и Выберите CloudKit

CloudKit является одной из трех услуг приложения, предоставленных iCloud. Другие службы приложения iCloud — хранение значения ключа и документы iCloud — также появляются в настройках iCloud в XCode. Для использования CloudKit Вы сначала включаете iCloud и затем выбираете службу CloudKit.

Включить iCloud и выбрать CloudKit

  1. В области Capabilities выберите переключатель в строке iCloud.

    XCode настраивает Ваше приложение для использования iCloud. (Хранение значения ключа включено по умолчанию.)

  2. Установите флажок CloudKit.

    XCode создает контейнер CloudKit по умолчанию на основе пакета ID и добавляет платформу CloudKit к Вашему проекту.

    ../Art/2_enable_cloudkit_2x.png

Ваше приложение может теперь хранить данные и документы в iCloud.

Доступ инструментальная панель CloudKit

Используйте Инструментальную панель CloudKit для управления схемой контейнера CloudKit и записями. Схема описывает организацию записей, атрибутов и отношений в базе данных. Запись является экземпляром типа записи. В реляционной базе данных тип записи соответствует таблице, и запись соответствует строке в таблице.

Регистрироваться к Инструментальной панели CloudKit

  1. В настройках iCloud в области Capabilities нажмите CloudKit Dashboard.

    Также перейдите к https://icloud.developer.apple.com/dashboard.

  2. Если необходимо, введите свой Apple учетные данные ID и нажмите, входят в систему.

    Все контейнеры для всех команд Вы принадлежите для появления в контейнерном всплывающем меню в верхнем левом углу окна. Активы для выбранного контейнера (названный Галереей в снимке экрана) выведены на экран.

    ../Art/2_cloudkit_dashboard_home_2x.png../Art/2_cloudkit_dashboard_home_2x.png

Для выписывания выберите Sign Out из всплывающего меню учетной записи (названный Томом Кларком в снимке экрана) в верхнем правом углу окна.

Контейнеры доли между приложениями

Дополнительно, сконфигурируйте свое приложение, чтобы использовать многократные контейнеры или совместно использовать контейнер с другими приложениями. Например, Вы могли бы использовать одно приложение внутренне для создания типов записи и записей программно для возврата базы данных известному состоянию. Это приложение должно совместно использовать тот же контейнер как приложение конечного пользователя, которое Вы разрабатываете и тестируете. Чтобы сделать это, Вы позволяете первому приложению использовать контейнер по умолчанию второго приложения или создать пользовательский контейнер это обе доли приложений. iOS и приложения Mac могут также быть сконфигурированы для совместного использования тех же контейнеров.

Добавьте контейнеры к приложению

Выберите существующий контейнерный ID, используемый другим приложением, или создайте новое.

Добавить контейнер к приложению

  1. В области Capabilities при настройках iCloud выберите «Specify custom containers».

    При предыдущем выборе службы CloudKit XCode создал контейнерный ID по умолчанию для приложения, соответствующего пакету ID. Галочка появляется рядом с контейнерным ID по умолчанию.

    ../Art/3_specifycontainers1_2x.png
  2. Если необходимо, нажмите Кнопку Обновить ниже таблицы Containers для загрузки контейнеров с Задействованного Центра, использующихся другими приложениями.

  3. В строке контейнерного ID Вы хотите добавить, установить флажок.

    XCode обновляет список контейнерного IDs в дающем право файле.

    Снимок экрана ниже шоу приложение Хранителя и Галереи, совместно использующее контейнер значения по умолчанию приложения Галереи.

    ../Art/3_specifycontainers2_2x.png

Создайте пользовательские контейнеры

Также создайте пользовательский контейнер, совместно использованный многократными приложениями.

Создать пользовательский контейнер

  1. Если «Контейнер значения по умолчанию использования” выбран, выберите «Specify custom containers».

  2. Нажмите кнопку Add (+) у основания таблицы.

  3. В диалоговом окне, появляющемся, введите идентификатор для контейнера, который Вы хотите добавить.

    Контейнерный ID начинается iCloud. сопровождаемый строкой в обратной нотации DNS, как в iCloud.com.example.ajohnson.SharedGallery контейнерный ID.

    ../Art/3_addicloudcontainerdialog_2x.png
  4. Нажать «OK».

    XCode добавляет новый контейнерный ID к дающему право файлу проекта XCode и к Задействованному Центру.

Если Вы хотите совместно использовать новый контейнерный ID с другим приложением, добавьте, что контейнер к приложению, как описано в Добавляют Контейнеры к Приложению.

Проверьте свои шаги

Можно просмотреть весь контейнерный IDs для команды в настройках iCloud или Задействованного Центра. В Задействованном Центре можно также добавить контейнеры и отредактировать имя контейнеров.

Просмотреть контейнерный IDs в Задействованном Центре

  1. В Задействованном Центре выберите Certificates, Identifiers и Profiles.

  2. Под Идентификаторами выберите Контейнеры iCloud.

    ../Art/3_viewing_membercenter_containers_2x.png../Art/3_viewing_membercenter_containers_2x.png

Создайте Счет iCloud на Разработку

Вам будет нужна учетная запись iCloud для сохранения записей на контейнер CloudKit. Вы введете учетные данные для этой учетной записи iCloud на устройстве, что Вы выполняете свое приложение. Если Вы не имеете учетной записи iCloud, создаете ту, которую можно использовать во время разработки. На Вашем Mac запустите Установки системы и щелкните по iCloud. Нажмите Create Apple ID под текстовым полем Apple ID и следуйте инструкциям.

../Art/2_create_icloud_account_2x.png../Art/2_create_icloud_account_2x.png

Резюме

В этой главе Вы учились как: