Возможности iOS

В iOS приложения .NET Multi-platform App UI (.NET MAUI) выполняются в песочнице, которая предоставляет набор правил, ограничивающих доступ между ресурсами приложения и системными ресурсами или данными пользователей. Apple предоставляет возможности, также известные как службы приложений, в качестве средства расширения функциональности и расширения область возможностей приложений iOS. Возможности позволяют добавить более глубокую интеграцию с функциями платформы в приложение, например интеграцию с Siri. Дополнительные сведения о возможностях см. в developer.apple.com.

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

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

Добавление возможностей с помощью Visual Studio

Возможности можно добавить в профиль подготовки в Visual Studio или Visual Studio для Mac. Этот подход требует использования автоматической подготовки и работает только для подмножества возможностей. Дополнительные сведения об автоматической подготовке см. в статье "Автоматическая подготовка для приложений iOS".

В следующем списке показаны возможности, которые можно подготовить автоматически с помощью Visual Studio или Visual Studio для Mac:

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

В Visual Studio все возможности добавляются в PLIST-файл приложения. Перечисленные выше возможности также добавляются в профиль подготовки. Дополнительные сведения о правах, включая добавление файла прав в проект, см. в разделе "Права".

  1. В Visual Studio убедитесь, что интегрированная среда разработки связана с узлом сборки Mac. Дополнительные сведения см. в разделе "Пара с Mac для разработки iOS".

  2. В Visual Studio включите автоматическую подготовку проекта. Дополнительные сведения см. в разделе "Включение автоматической подготовки".

  3. В Visual Studio добавьте файл Entitlements.plist в проект. Дополнительные сведения см. в разделе "Добавление файла Entitlements.plist".

  4. В Обозреватель решений дважды щелкните файл Entitlements.plist из папки "Платформы > iOS" проекта приложения .NET MAUI, чтобы открыть его в редакторе прав.

  5. В редакторе прав выберите и настройте все права, необходимые для приложения:

    Visual Studio iOS entitlements editor.

  6. Сохраните изменения в файле Entitlements.plist , чтобы добавить пары "ключ-значение" в файл и добавить службу приложений в идентификатор приложения.

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

Добавление возможностей в учетную запись разработчика Apple

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

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

При добавлении новой возможности в профиль подготовки необходимо также добавить ту же возможность в файл Entitlements.plist приложения и убедиться, что приложение использует этот файл. Дополнительные сведения см. в разделе "Права". Для определенных возможностей также может потребоваться задать ключи конфиденциальности в Info.plist.

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

Идентификатор приложения похож на строку обратного DNS, которая однозначно идентифицирует приложение и требуется для идентификации распространяемого приложения. Идентификатор приложения должен совпадать с идентификатором пакета для приложения.

Важно!

Идентификатор пакета для приложения MAUI .NET хранится в файле проекта в качестве свойства идентификатора приложения:

  • В Visual Studio в Обозреватель решений щелкните правой кнопкой мыши проект приложения .NET MAUI и выберите "Свойства". Затем перейдите на вкладку "Общие > общие " MAUI. Поле идентификатора приложения содержит идентификатор пакета.
  • В Visual Studio для Mac в окне решения щелкните правой кнопкой мыши проект приложения .NET MAUI и выберите "Свойства". Затем в окне "Свойства проекта" выберите вкладку "Сведения о сборке > приложения". Поле идентификатора приложения содержит идентификатор пакета.

При обновлении значения поля идентификатора приложения значение идентификаторапакета в info.plist будет автоматически обновлено.

Существует два типа идентификатора приложения — явный и дикий карта. Явный идентификатор приложения является уникальным для одного приложения и обычно принимает форму com.domainname.myid. Явный идентификатор приложения позволяет установить одно приложение с соответствующим идентификатором пакета на устройство. Явные идентификаторы приложений необходимы для приложений, которые обеспечивают возможности для конкретных приложений.

Явный идентификатор приложения можно создать с помощью следующих действий:

  1. В веб-браузере перейдите в раздел "Идентификаторы " учетной записи разработчика Apple и нажмите кнопку + .

  2. На странице "Регистрация нового идентификатора" выберите идентификаторы приложений и нажмите кнопку "Продолжить".

  3. На странице "Регистрация нового идентификатора" выберите тип приложения и нажмите кнопку "Продолжить".

  4. На странице "Регистрация идентификатора приложения" укажите описание и задайте идентификатор пакета явным. Затем введите идентификатор приложения в формате com.domainname.myid:

    Screenshot of new App ID registration page with required fields populated.

  5. На странице "Регистрация идентификатора приложения" включите необходимые возможности на вкладках "Возможности" и Служба приложений s:

    Screenshot of enabled capabilities.

  6. На странице "Регистрация идентификатора приложения" нажмите кнопку "Продолжить".

  7. На странице "Подтверждение идентификатора приложения" просмотрите сведения и нажмите кнопку "Зарегистрировать". Если идентификатор приложения успешно регистрируется, вы вернетесь в раздел "Идентификаторы" учетной записи разработчика Apple.

  8. На странице "Идентификаторы" щелкните только что созданный идентификатор приложения.

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

    Screenshot of editing capabilities.

    Нажмите все кнопки "Настройка", чтобы настроить включенные возможности. Дополнительные сведения см. в разделе "Настройка возможностей приложений " на developer.apple.com.

Создание профиля обеспечения

После создания идентификатора приложения необходимо создать профиль подготовки для идентификатора приложения. Для этого необходимо, чтобы вы ранее создали сертификат подписи и добавили устройство в учетную запись разработчика Apple. Дополнительные сведения см. в разделе "Создание сертификата подписи" и "Добавление устройства".

Профиль подготовки можно создать с помощью следующих действий:

  1. В веб-браузере перейдите в раздел "Профили " учетной записи разработчика Apple и нажмите кнопку + .

  2. На странице "Регистрация нового профиля подготовки" в разделе "Разработка" выберите "Разработка приложений iOS" (или тип профиля распространения из раздела "Распространение") и нажмите кнопку "Продолжить".

    Screenshot of creating a provisioning profile for iOS app development.

  3. На странице "Создание профиля подготовки" выберите идентификатор приложения и нажмите кнопку "Продолжить":

    Screenshot of adding an App ID to a provisioning profile.

  4. На странице "Создание профиля подготовки" выберите сертификаты для включения в профиль подготовки и нажмите кнопку "Продолжить":

    Screenshot of adding a certificate to a provisioning profile.

  5. На странице "Создание профиля подготовки" выберите устройства, на которые будет установлено приложение, а затем нажмите кнопку "Продолжить":

    Screenshot of adding a device to a provisioning profile.

  6. На странице "Создание профиля подготовки" укажите имя профиля подготовки и нажмите кнопку "Создать":

    Screenshot of naming a provisioning profile.

Включение подготовки вручную

После создания профиля подготовки его необходимо скачать Visual Studio и задать в качестве профиля подготовки для проекта:

  1. В Visual Studio скачайте только что созданный профиль подготовки, чтобы он был доступен для подписывания приложения. Дополнительные сведения см. в разделе "Скачивание профилей подготовки" в Visual Studio.
  2. В Visual Studio включите ручную подготовку проекта. Дополнительные сведения см. в разделе "Включение подготовки вручную".

Устранение неполадок

В следующем списке описаны распространенные проблемы, которые могут вызвать проблемы при разработке приложения iOS для .NET MAUI, использующего возможности:

  • Убедитесь, что правильный идентификатор приложения был создан и зарегистрирован в разделе "Идентификаторы " учетной записи разработчика Apple.
  • Убедитесь, что эта возможность добавлена в идентификатор приложения и что эта возможность настроена с использованием правильных значений.
  • Убедитесь, что профиль подготовки установлен на компьютере разработки и что файл Info.plist приложения использует идентификатор пакета, идентичный идентификатору приложения.
  • Убедитесь, что файл applications.plist имеет правильные права.
  • Убедитесь, что все необходимые ключи конфиденциальности заданы в Info.plist.
  • Убедитесь, что приложение использует файл Entitlements.plist .