Работа с возможностями в Xamarin.iOS

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

Apple предоставляет разработчикам возможности, которые зачастую называют службами приложений, как способ расширить функционал и область применения приложений iOS. Возможности позволяют разработчикам реализовать более глубокую интеграцию функций платформы в свои приложения, такие как совершение денежных операций из приложения, использование дополнительных служб устройств, например Siri, а также многое другое. Эти возможности можно использовать в проектах Xamarin.iOS. Полный список служб представлен ниже:

  • Группы приложений
  • Связанные домены
  • Защита данных
  • Игровой центр
  • HealthKit
  • HomeKit
  • Конфигурация беспроводных периферийных устройств
  • iCloud
  • Покупки из приложений
  • Звук между приложениями
  • Apple Pay
  • Кошелек
  • Push-уведомление
  • Личная VPN
  • Siri
  • Карты
  • Фоновые режимы
  • Обмен связками ключей
  • Расширения сети
  • Конфигурация хот-спота
  • Несколько путей
  • Чтение тегов NFC

Возможности можно включить через Visual Studio для Mac и Visual Studio 2019 или вручную на портале разработчиков Apple. Для реализации некоторых возможностей, таких как Wallet, Apple Pay и iCloud, требуется дополнительная настройка идентификаторов приложений.

В этом руководстве описывается порядок реализации каждой из этих служб приложений автоматически (с помощью Visual Studio) и вручную (через центр разработчиков), включая дополнительные необходимые настройки.

Добавление служб приложений

Чтобы использовать возможности, приложению требуется допустимый профиль подготовки, который содержит идентификатор приложения с соответствующей включенной службой. Создать такой профиль подготовки можно автоматически в Visual Studio для Mac и Visual Studio 2019 или вручную в центре разработчиков Apple.

В этом разделе описано, как использовать автоматическую подготовку Visual Studio или центр разработчиков для реализации большинства возможностей. Существуют некоторые возможности, такие как Wallet, iCloud, Apple Pay и группы приложений, которые требуют дополнительной настройки. Более подробно они описаны в соответствующих руководствах.

Внимание

Не все возможности можно добавить и реализовать с помощью автоматической подготовки. Далее приведен список поддерживаемых возможностей:

  • HealthKit
  • HomeKit
  • Личная VPN
  • Конфигурация беспроводных периферийных устройств
  • Звук между приложениями
  • SiriKit
  • Хот-спот
  • Расширения сети
  • Чтение тегов NFC
  • Несколько путей

Такие возможности, как push-уведомления, Game Center, покупки из приложений, карты, обмен связками ключей, связанные домены и защита данных в настоящее время не поддерживаются. Чтобы добавить эти возможности, воспользуйтесь подготовкой вручную и следуйте инструкциям в разделе Центр разработчиков.

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

Возможности содержатся в файле Entitlements.plist в Visual Studio для Mac. Чтобы добавить возможности, выполните следующие действия:

  1. Откройте файл Info.plist приложения iOS, выберите схему Автоматическая подготовка и вашу команду в поле со списком Команда. Если требуется помощь, следуйте указаниям в руководстве по автоматической подготовке:

    Automatically manage signing option

  2. Откройте файл Entitlements.plist и выберите возможности, которые требуется добавить:

    Screenshot shows contents of the Entitlements.plist file.

    При выборе возможности происходит следующее:

    • Добавление возможности в идентификатор приложения
    • Добавление пары "ключ-значение" назначения в файл Entitlements.plist.

    После выполнения этих задач в Visual Studio для Mac отображается следующее сообщение об успешном выполнении:

    Screenshot shows the notification when Automatic Provisioning finishes.

Использование центра разработчиков

Для использования центра разработчиков необходимо сначала создать идентификатор приложения, а затем создать профиль подготовки с помощью этого идентификатора. Эти шаги детально описаны ниже.

Создание идентификатора приложения с помощью службы приложения

  1. Перейдите в центр разработчиков Apple на Mac (или на узел сборки Mac, если используется компьютер с ОС Windows) и выполните вход.

  2. Выберите Certificates, Identifiers, and Profiles (Сертификаты, идентификаторы и профили):

    Apple Developer Center

  3. В разделе Identifiers (Идентификаторы) выберите элемент App IDs (ИД приложений):

    App ID selection in Developer Center

  4. Чтобы создать идентификатор, в правом верхнем углу нажмите кнопку +.

  5. Введите описание идентификатора приложения, выберите явный идентификатор приложения и введите идентификатор пакета в формате com.domain.appname. Этот идентификатор пакета должен совпадать с идентификатором пакета в проекте:

    Adding App ID details

  6. В разделе App Services (Службы приложений) выберите одну или несколько служб, которые требуется добавить в приложение:

    App Services selection page

  7. Нажмите Continue (Продолжить).

  8. Подтвердите идентификатор приложения. Каждая служба будет находиться в одном из следующих состояний: Enabled (Включено), Disabled (Отключено) или Configurable (Настраиваемая), как показано ниже. Если указано состояние Enabled (Включено), то служба готова для использования в профиле подготовки. Если указано состояние Configurable (Настраиваемая), то для использования этой возможности требуется дополнительная настройка. Более подробно такие дополнительные шаги описаны в последующих разделах.

    App ID confirmation

  9. Нажмите Register (Зарегистрировать), а затем — Done (Готово). Только что созданный идентификатор приложения должен отобразиться в списке идентификаторов приложений iOS.

Создание профиля подготовки

Теперь необходимо создать профиль подготовки, содержащий этот идентификатор приложения. Выполните приведенные ниже действия:

  1. В Центре разработчиков Apple перейдите к профилям > подготовки всех:

    Provisioning Profile section

  2. Чтобы создать профиль подготовки, в правом верхнем углу нажмите кнопку +.

  3. Выберите тип создаваемого профиля подготовки и нажмите Continue (Продолжить):

    Provisioning Profile selection

  4. В раскрывающемся списке выберите идентификатор приложения, который был создан выше, и нажмите Continue (Продолжить):

    App ID selection

  5. Выберите сертификаты, используемые для подписывания приложения, и нажмите Continue (Продолжить):

    Certificate selection

  6. Выберите устройства, которые будут включены в этот профиль, и нажмите Continue (Продолжить):

    Select devices for Provisioning Profile

  7. Присвойте имя профилю, чтобы его можно было идентифицировать, и нажмите Continue (Продолжить) для создания профиля:

    Name provisioning Profile

  8. Нажмите кнопку Download (Скачать), чтобы скачать профиль, а затем дважды щелкните файл в Finder, чтобы установить профиль подготовки.

  9. Если вы используете Visual Studio, убедитесь, что выбран вариант Подготовка вручную.

  10. В Visual Studio для Mac / Visual Studio перейдите к подписи пакета параметров > проекта и задайте профиль подготовки только что созданному:

    Visual Studio for Mac Project Options

Внимание

Также может понадобится задать ключи назначения в файле Entitlement.plist и закрытые ключи в файле Info.plist. Дополнительные сведения об этих назначениях см. в руководстве Работа с назначениями.

Next Steps

После включения возможности на стороне сервера необходимо выполнить ряд действий, чтобы разрешить приложению использовать эту возможность. Ниже перечислены дополнительные действия, которые необходимо выполнить:

  • Используйте в приложении пространство имен платформы.
  • Добавьте необходимые назначения к вашему приложению. Подробные сведения о необходимых назначениях и об их добавлении см. в руководстве Общие сведения о назначениях.

Возможности по устранению неполадок

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

  • Убедитесь в том, что идентификатор был правильно создан и зарегистрирован в разделе Certificates, IDs & Profiles (Сертификаты, идентификаторы и профили) на портале разработчиков Apple.
  • Убедитесь, что служба добавлена в идентификатор приложения (или расширения), а также что служба настроена на использование группы приложений/идентификатора продавца/контейнера, созданных ранее в разделе Certificates, IDs & Profiles (Сертификаты, идентификаторы и профили) на портале разработчиков Apple.
  • Убедитесь, что профили подготовки и идентификаторы приложений были установлены, а также что в файле Info.plist приложения (в проекте Xamarin) используется один из настроенных выше идентификаторов приложений.
  • Убедитесь, что в файле Entitlements.plist приложения (в проекте Xamarin) включена соответствующая служба.
  • Убедитесь, что в файле info.plist заданы соответствующие закрытые ключи.
  • Убедитесь, что в Подписывании пакета iOS приложения параметр Настраиваемые назначения установлен в Entitlements.plist. Эта настройка не устанавливается по умолчанию для сборок отладки и симулятора iOS.

Итоги

В этом руководстве описаны возможности или службы приложений, а также описан порядок их включения с помощью Visual Studio и в центре разработчиков Apple. В нем также представлены подробные сведения о настройке более сложных служб, таких как Wallet, iCloud, Apple Pay и группы приложений. Наконец, в руководстве рассматриваются дальнейшие действия по настройке и варианты устранения простых неполадок.