Работа с возможностями в 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. Чтобы добавить возможности, выполните следующие действия:
Откройте файл Info.plist приложения iOS, выберите схему Автоматическая подготовка и вашу команду в поле со списком Команда. Если требуется помощь, следуйте указаниям в руководстве по автоматической подготовке:
Откройте файл Entitlements.plist и выберите возможности, которые требуется добавить:
При выборе возможности происходит следующее:
- Добавление возможности в идентификатор приложения
- Добавление пары "ключ-значение" назначения в файл Entitlements.plist.
После выполнения этих задач в Visual Studio для Mac отображается следующее сообщение об успешном выполнении:
Использование центра разработчиков
Для использования центра разработчиков необходимо сначала создать идентификатор приложения, а затем создать профиль подготовки с помощью этого идентификатора. Эти шаги детально описаны ниже.
Создание идентификатора приложения с помощью службы приложения
Перейдите в центр разработчиков Apple на Mac (или на узел сборки Mac, если используется компьютер с ОС Windows) и выполните вход.
Выберите Certificates, Identifiers, and Profiles (Сертификаты, идентификаторы и профили):
В разделе Identifiers (Идентификаторы) выберите элемент App IDs (ИД приложений):
Чтобы создать идентификатор, в правом верхнем углу нажмите кнопку +.
Введите описание идентификатора приложения, выберите явный идентификатор приложения и введите идентификатор пакета в формате
com.domain.appname
. Этот идентификатор пакета должен совпадать с идентификатором пакета в проекте:В разделе App Services (Службы приложений) выберите одну или несколько служб, которые требуется добавить в приложение:
Нажмите Continue (Продолжить).
Подтвердите идентификатор приложения. Каждая служба будет находиться в одном из следующих состояний: Enabled (Включено), Disabled (Отключено) или Configurable (Настраиваемая), как показано ниже. Если указано состояние Enabled (Включено), то служба готова для использования в профиле подготовки. Если указано состояние Configurable (Настраиваемая), то для использования этой возможности требуется дополнительная настройка. Более подробно такие дополнительные шаги описаны в последующих разделах.
Нажмите Register (Зарегистрировать), а затем — Done (Готово). Только что созданный идентификатор приложения должен отобразиться в списке идентификаторов приложений iOS.
Создание профиля подготовки
Теперь необходимо создать профиль подготовки, содержащий этот идентификатор приложения. Выполните приведенные ниже действия:
В Центре разработчиков Apple перейдите к профилям > подготовки всех:
Чтобы создать профиль подготовки, в правом верхнем углу нажмите кнопку +.
Выберите тип создаваемого профиля подготовки и нажмите Continue (Продолжить):
В раскрывающемся списке выберите идентификатор приложения, который был создан выше, и нажмите Continue (Продолжить):
Выберите сертификаты, используемые для подписывания приложения, и нажмите Continue (Продолжить):
Выберите устройства, которые будут включены в этот профиль, и нажмите Continue (Продолжить):
Присвойте имя профилю, чтобы его можно было идентифицировать, и нажмите Continue (Продолжить) для создания профиля:
Нажмите кнопку Download (Скачать), чтобы скачать профиль, а затем дважды щелкните файл в Finder, чтобы установить профиль подготовки.
Если вы используете Visual Studio, убедитесь, что выбран вариант Подготовка вручную.
В Visual Studio для Mac / Visual Studio перейдите к подписи пакета параметров > проекта и задайте профиль подготовки только что созданному:
Внимание
Также может понадобится задать ключи назначения в файле 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 и группы приложений. Наконец, в руководстве рассматриваются дальнейшие действия по настройке и варианты устранения простых неполадок.