Поделиться через


Возможности Mac Catalyst

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

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

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

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

Возможности можно добавить в профиль подготовки приложения в учетной записи разработчика 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.

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

После создания идентификатора приложения необходимо создать профиль подготовки для идентификатора приложения. Создаваемый профиль подготовки также зависит от предполагаемого канала распространения для приложения:

Скачивание профилей подготовки

Примечание.

Visual Studio для Mac планируется на пенсию к 31 августа 2024 г. в соответствии с Современная политика жизненного цикла Майкрософт. Visual Studio для Mac 17.6 будет поддерживаться до 31 августа 2024 г. с обновлениями обслуживания для проблем с безопасностью и обновленными платформами от Apple. Дополнительные сведения, включая альтернативные варианты разработки на компьютере Mac, см. в статье "Что происходит с Visual Studio для Mac?".

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

  1. В Visual Studio для Mac перейдите в раздел "Параметры Visual Studio>">, чтобы опубликовать > учетную запись разработчика Apple.
  2. В окне "Учетные записи разработчиков Apple" выберите команду и нажмите кнопку "Просмотреть сведения...".
  3. В окне "Сведения" убедитесь, что новый профиль появится в списке профилей подготовки. Чтобы обновить список, может потребоваться перезапустить Visual Studio для Mac.
  4. В диалоговом окне "Сведения" нажмите кнопку "Скачать все профили".

Затем профиль подготовки будет доступен для использования.

Примечание.

Вы также можете скачать профиль подготовки в Xcode. Дополнительные сведения см. в разделе "Скачать профиль подготовки" в Xcode.

Определение свойств сборки в файле проекта

Файл проекта приложения следует обновить, чтобы использовать сертификат подписи, профиль подготовки и файл прав. Это можно сделать, добавив в файл проекта следующие свойства <PropertyGroup> сборки:

Свойство Значение
<CodesignKey> Имя ключа подписывания кода. Задайте имя сертификата распространения, как показано в keychain Access.
<CodesignEntitlements> Путь к файлу прав, который указывает необходимые для приложения права. Задайте значение Platforms\MacCatalyst\Entitlements.plist.
<CodesignProvision> Профиль подготовки, используемый при подписи пакета приложений.
<EnableCodeSigning> Задайте для true включения подписывания кода.

В следующем примере показана типичная группа свойств для создания и подписывания приложения Mac Catalyst для распространения Mac App Store:

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
  <EnableCodeSigning>True</EnableCodeSigning>
  <CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp</CodesignProvision>
  <CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
</PropertyGroup>

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

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

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