Публикация приложения Mac Catalyst для дистрибутива Mac App Store

Наиболее распространенный подход к распространению приложений Mac Catalyst пользователям — через Mac App Store. Приложения отправляются в Магазин Приложений Mac через интернет-средство с именем App Store Подключение. Только разработчики, принадлежащие программе разработчиков Apple, имеют доступ к этому инструменту. У участников корпоративной программы для разработчиков Apple доступа нет. Все приложения, отправленные в Mac App Store, требуют утверждения от Apple.

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

Для распространения мультиплатформенного пользовательского интерфейса приложений .NET (.NET MAUI) Mac Catalyst необходимо создать профиль подготовки дистрибутива, характерный для него. Этот профиль позволяет приложению иметь цифровую подпись для выпуска, чтобы его можно было установить на Компьютерах Mac. Профиль подготовки распространителя содержит идентификатор приложения и сертификат распространения. Вам потребуется создать сертификат распространения для идентификации себя или организации, если у вас еще нет сертификата. Кроме того, необходимо создать сертификат установщика Mac, чтобы подписать пакет установщика приложения для отправки в Mac App Store.

Процесс подготовки приложения .NET MAUI Mac Catalyst для распространения через Mac App Store выглядит следующим образом:

  1. Создайте запрос на подпись сертификата. Дополнительные сведения см. в разделе "Создание запроса на подпись сертификата".
  2. Создайте сертификат распространения. Дополнительные сведения см. в разделе "Создание сертификата распространения".
  3. Создайте сертификат установщика. Дополнительные сведения см. в разделе "Создание сертификата установщика".
  4. Создайте идентификатор приложения. Дополнительные сведения см. в разделе "Создание идентификатора приложения".
  5. Настройте идентификатор приложения. Дополнительные сведения см. в разделе "Настройка идентификатора приложения".
  6. Создайте профиль подготовки. Дополнительные сведения см. в разделе "Создание профиля подготовки".
  7. Скачайте профиль подготовки. Дополнительные сведения см. в разделе "Скачать профиль подготовки" в Xcode.

После завершения подготовки необходимо подготовить приложение к публикации, а затем опубликовать его с помощью следующего процесса:

  1. Добавьте необходимые права в приложение. Дополнительные сведения см. в разделе "Добавление прав".
  2. Обновите файл Info.plist приложения. Дополнительные сведения см. в разделе Update Info.plist.
  3. Опубликуйте приложение с помощью командной строки. Дополнительные сведения см. в статье "Публикация с помощью командной строки".

Создание запроса на подписывание сертификата

Прежде чем создать сертификат распространения, сначала необходимо создать запрос на подпись сертификата (CSR) в цепочке ключей в Mac:

  1. На компьютере Mac запустите программу Keychain Access.

  2. В разделе "Доступ к цепочке ключей" выберите помощник по > сертификату доступа > к цепочке ключей запрос сертификата из центра сертификации... пункт меню.

  3. В диалоговом окне помощника по сертификату введите адрес электронной почты в поле "Адрес электронной почты пользователя".

  4. В диалоговом окне помощника по сертификату введите имя ключа в поле "Общее имя".

  5. В диалоговом окне помощника по сертификату оставьте поле адреса электронной почты ЦС пустым.

  6. В диалоговом окне "Помощник по сертификату" нажмите кнопку "Сохранить на диск" и нажмите кнопку "Продолжить".

    Certificate assistant dialog.

  7. Сохраните запрос на подпись сертификата в известном расположении.

  8. В диалоговом окне помощника по сертификату нажмите кнопку "Готово".

  9. Закройте доступ к цепочке ключей.

Создайте сертификат распространения

CSR позволяет создать сертификат распространения, который подтверждает удостоверение. Сертификат распространения должен быть создан с помощью Идентификатора Apple для учетной записи разработчика Apple:

  1. В веб-браузере войдите в учетную запись разработчика Apple.

  2. В учетной записи разработчика Apple выберите вкладку "Сертификаты" и "Профили".

  3. На странице "Сертификаты", "Идентификаторы и профили" нажмите + кнопку, чтобы создать новый сертификат.

  4. На странице "Создание сертификата" нажмите переключатель "Распространение Apple" перед нажатием кнопки "Продолжить":

    Create an Apple distribution certificate.

  5. На странице "Создание сертификата" выберите "Выбрать файл":

    Upload your certificate signing request for your Apple distribution certificate.

  6. В диалоговом окне выбора файлов для отправки выберите созданный ранее файл запроса сертификата (файл с расширением .certSigningRequest файла) и нажмите кнопку "Отправить".

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

    Continue to generate your distribution certificate.

  8. На странице "Скачать сертификат" нажмите кнопку "Скачать":

    Download your Apple distribution certificate.

    Файл сертификата (файл с расширением .cer ) будет скачан в выбранное расположение.

  9. На компьютере Mac дважды щелкните скачанный файл сертификата, чтобы установить сертификат в связка ключей. Сертификат отображается в категории "Мои сертификаты" в keychain Access и начинается с распространения Apple:

    Keychain Access showing distribution certificate.

    Примечание.

    Запишите полное имя сертификата в keychain Access. Это потребуется при подписи приложения.

Создание сертификата установщика

CSR позволяет создать сертификат установщика, который требуется для подписи пакета установщика приложения для отправки в Mac App Store. Сертификат установщика должен быть создан с помощью идентификатора Apple ID для учетной записи разработчика Apple:

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

  2. На странице "Сертификаты", "Идентификаторы и профили" нажмите + кнопку, чтобы создать новый сертификат.

  3. На странице "Создание сертификата" нажмите переключатель распространения установщика Mac, прежде чем нажать кнопку "Продолжить":

    Create a Mac Installer distribution certificate.

  4. На странице "Создание сертификата" выберите "Выбрать файл":

    Upload your certificate signing request for the Mac installer certificate.

  5. В диалоговом окне выбора файлов для отправки выберите созданный ранее файл запроса сертификата (файл с расширением .certSigningRequest файла) и нажмите кнопку "Отправить".

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

    Continue to generate your installer certificate.

  7. На странице "Скачать сертификат" нажмите кнопку "Скачать":

    Download your Mac installer certificate.

    Файл сертификата (файл с расширением .cer ) будет скачан в выбранное расположение.

  8. На компьютере Mac дважды щелкните скачанный файл сертификата, чтобы установить сертификат в связка ключей. Сертификат отображается в категории "Мои сертификаты" в keychain Access и начинается с 3-го стороннего установщика разработчика Mac:

    Keychain Access showing installer certificate.

    Примечание.

    Запишите полное имя сертификата в keychain Access. Это потребуется при подписи приложения.

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

Профиль подготовки дистрибутива позволяет приложению .NET MAUI Mac Catalyst быть цифрово подписанным для выпуска, чтобы его можно было установить на другом Компьютере Mac. Профиль подготовки для дистрибутива Mac App Store содержит идентификатор приложения и сертификат распространения.

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

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

Существует два типа идентификатора приложения:

  • Подстановочные знаки. Идентификатор приложения wild карта позволяет использовать один идентификатор приложения для сопоставления нескольких приложений и обычно принимает формуcom.domainname.*. Дикий карта идентификатор приложения можно использовать для распространения нескольких приложений и использовать для приложений, которые не поддерживают возможности для конкретных приложений.
  • Явная транзакция. Явный идентификатор приложения является уникальным для одного приложения и обычно принимает форму com.domainname.myid. Явный идентификатор приложения позволяет распространять одно приложение с соответствующим идентификатором пакета. Явные идентификаторы приложений обычно используются для приложений, которые обеспечивают специальные возможности приложения, такие как Apple Pay или Game Center. Дополнительные сведения о возможностях см. в разделе "Возможности".

Чтобы создать новый идентификатор приложения, выполните приведенные действия.

  1. В учетной записи разработчика Apple перейдите к сертификатам, идентификаторам и профилям.

  2. На странице "Сертификаты", "Идентификаторы и профили" выберите вкладку "Идентификаторы".

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

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

    Create an App ID.

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

    Register an App ID.

  6. На странице "Регистрация идентификатора приложения" введите описание и нажмите кнопку "Явный" или "Дикий карта идентификатор пакета". Затем введите идентификатор пакета для приложения в обратном формате DS:

    Specify the bundle identifier for the app.

    Важно!

    Идентификатор пакета, который вы вводите, должен соответствовать идентификатору пакета в файле Info.plist в проекте приложения.

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

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

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

  7. На странице "Регистрация идентификатора приложения" выберите все возможности, которые использует приложение. Все возможности должны быть настроены как на этой странице, так и в файле Entitlements.plist в проекте приложения. Дополнительные сведения см. в разделе "Возможности и права".

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

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

Настройка идентификатора приложения

По умолчанию приложение Mac Catalyst использует тот же идентификатор пакета, что и приложение iOS, чтобы вы могли предлагать приложения вместе в качестве универсальной покупки в Mac App Store. Кроме того, можно указать уникальный идентификатор пакета для предложения приложения в качестве отдельного продукта.

Чтобы настроить идентификатор приложения, выполните следующие действия.

  1. В учетной записи разработчика Apple перейдите к сертификатам, идентификаторам и профилям.

  2. На странице "Сертификаты", "Идентификаторы и профили" выберите вкладку "Идентификаторы".

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

  4. На странице "Изменение конфигурации идентификатора приложения" прокрутите страницу до нижней части страницы и включите возможность Mac Catalyst проверка-box. Затем нажмите кнопку "Настройка" :

    Enable the Mac Catalyst capability.

  5. Во всплывающем запустите всплывающее окно "Настройка идентификатора пакета для Mac Catalyst " и нажмите кнопку "Использовать существующий идентификатор приложения Mac". В раскрывающемся списке "Идентификатор приложения" выберите идентификатор приложения для партнерского приложения iOS для Mac Catalyst или идентификатор приложения, который вы создали, если вы предлагаете приложение Mac Catalyst в качестве отдельного продукта. Затем нажмите кнопку "Сохранить":

    Configure the Bundle ID for Mac Catalyst.

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

    Save the Mac Catalyst configuration.

  7. Во всплывающем оккупе "Изменить возможности приложений " нажмите кнопку "Подтвердить ":

    Modify the app capabilities.

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

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

Чтобы создать профиль подготовки для дистрибутива Mac App Store, выполните приведенные действия.

  1. На странице "Сертификаты", "Идентификаторы и профили" учетной записи разработчика Apple выберите вкладку "Профили ".

  2. На вкладке "Профили" нажмите + кнопку, чтобы создать новый профиль.

  3. На странице "Регистрация нового профиля подготовки" нажмите переключатель Mac App Store, прежде чем нажать кнопку "Продолжить":

    Register a provisioning profile for app store distribution.

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

    Select your App ID.

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

    Select your distribution certificate.

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

    Generate the provisioning profile.

    Примечание.

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

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

    Примечание.

    Сейчас не нужно скачать профиль подготовки. Вместо этого вы сделаете это в Xcode.

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

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

  1. На компьютере Mac запустите Xcode.

  2. В Xcode выберите пункт меню Xcode > Preferences...

  3. В диалоговом окне "Параметры" выберите вкладку "Учетные записи".

  4. На вкладке "Учетные записи" нажмите + кнопку, чтобы добавить учетную запись разработчика Apple в Xcode:

    Xcode Accounts dialog in preferences.

  5. Во всплывающем окне типа учетной записи выберите Apple ID и нажмите кнопку "Продолжить ":

    Xcode select the type of account you'd like to add popup.

  6. Во всплывающем окне входа введите идентификатор Apple ID и нажмите кнопку "Далее ".

  7. Во всплывающем окне входа введите пароль Apple ID и нажмите кнопку "Далее ":

    Xcode Apple account sign-in.

  8. На вкладке "Учетные записи" нажмите кнопку "Управление сертификатами", чтобы убедиться, что сертификат распространителя скачан.

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

    Xcode Apple Developer Program account details.

  10. Дождитесь завершения скачивания и закройте Xcode.

Добавление прав

Песочница приложений Apple ограничивает доступ к системным ресурсам и данным пользователей в приложениях Mac, чтобы содержать ущерб, если приложение скомпрометировано. Он должен быть включен для приложений Mac Catalyst, распределенных через Mac App Store.

Это можно сделать, добавив файл Entitlements.plist в папку Platform/MacCatalyst проекта приложения .NET MAUI:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
  </dict>
</plist>

Назначение песочницы приложения определяется с помощью com.apple.security.app-sandbox ключа типа boolean. Сведения о песочнице приложения см. в разделе "Защита данных пользователей с помощью песочницы приложения" на developer.apple.com. Сведения о назначении песочницы приложения см. в разделе "Песочница приложений".

Если приложение открывает исходящие сетевые подключения, вам также потребуется добавить com.apple.security.network.client ключ типа booleanв файл Entitlements.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
  </dict>
</plist>

Сведения о правах исходящих сетевых подключений см. в developer.apple.com com.apple.security.network.client .

Обновление Info.plist

Перед публикацией приложения необходимо обновить файл Info.plist с дополнительными сведениями, чтобы убедиться, что приложение можно отправить в Mac App Store, а также обеспечить гладкий процесс проверки Mac App Store.

Указание идиом пользовательского интерфейса

Приложение Mac Catalyst может работать в пользовательском интерфейсе iPad или Mac:

  • Идиом пользовательского интерфейса iPad сообщает macOS масштабировать пользовательский интерфейс приложения, чтобы он соответствовал среде отображения Mac при сохранении внешнего вида iPad.
  • Идиом пользовательского интерфейса Mac не масштабируется пользовательский интерфейс приложения, чтобы он соответствовал среде отображения Mac. Некоторые элементы управления изменяют их размер и внешний вид, а взаимодействие с ними чувствует себя идентичным взаимодействию с AppKit элементами управления.

По умолчанию приложения .NET MAUI Mac Catalyst используют идиом пользовательского интерфейса iPad. Если это нужное поведение, убедитесь, что файл Info.plist приложения указывает только 2 в качестве значения UIDeviceFamily ключа:

<key>UIDeviceFamily</key>
<array>
  <integer>2</integer>
</array>

Чтобы применить идиом пользовательского интерфейса Mac, обновите файл Info.plist приложения, чтобы указать 6 в качестве значения UIDeviceFamily ключа:

<key>UIDeviceFamily</key>
<array>
  <integer>6</integer>
</array>

Дополнительные сведения об идиомах пользовательского интерфейса Mac Catalyst см. в разделе "Указание идиом пользовательского интерфейса" для приложения Mac Catalyst.

Настройка языка и региона по умолчанию для приложения

CFBundleDevelopmentRegion Задайте для ключа в info.plist приложения значение, string представляющее область разработки в собственном коде локализации:

<key>CFBundleDevelopmentRegion</key>
<string>en</string>

Значение ключа должно быть конструктором языка с необязательным конструктором регионов. Дополнительные сведения см. в разделе CFBundleDevelopmentRegion на developer.apple.com.

NSHumanReadableCopyright Задайте ключ в info.pliststring приложения, который представляет уведомление об авторских правах, доступное для чтения для вашего приложения:

<key>NSHumanReadableCopyright</key>
<string>MyMauiApp © 2023</string>

Дополнительные сведения см. в статье NSHumanReadableCopyright на developer.apple.com.

Установка категории приложений

Категории помогают пользователям обнаруживать приложение в Mac App Store. Основную категорию приложения можно задать в файле Info.plist :

<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>

Дополнительные сведения см. в статье LSApplicationCategoryType на developer.apple.com.

Примечание.

Основная категория приложения должна соответствовать основной категории, заданной в App Store Подключение.

Объявление использования шифрования приложения

Если ваше приложение использует шифрование и планируете распространять его за пределами США или Канады, это зависит от требований к экспорту США. Каждый раз, когда вы отправляете версию приложения в App Store Подключение, она проходит проверку соответствия нормативным требованиям экспорта шифрования. Чтобы избежать Подключение приложений, чтобы задать вопросы, чтобы вы могли ознакомиться с обзором, вы можете указать необходимые сведения в файле Info.plist приложения.

Это достигается путем добавления ITSAppUsesNonExemptEncryption ключа в info.plist приложения со boolean значением, которое указывает, используется ли ваше приложение шифрование:

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Дополнительные сведения см. в разделе "Соответствие правилам экспорта шифрования" по developer.apple.com.

Публикация с помощью командной строки

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

Параметр Значение
-f или --framework Целевая платформа, которая является net8.0-maccatalyst.
-c или --configuration Конфигурация сборки, которая является Release.
-p:MtouchLink Режим ссылки для проекта, который может быть None, SdkOnlyили Full.
-p:CreatePackage true Задайте для этого значение, чтобы пакет (PKG) был создан для приложения в конце сборки.
-p:EnableCodeSigning Задайте для true включения подписывания кода.
-p:EnablePackageSigning Задайте для true того, чтобы созданный пакет был подписан.
-p:CodesignKey Имя ключа подписывания кода. Задайте имя сертификата распространения, как показано в keychain Access.
-p:CodesignProvision Профиль подготовки, используемый при подписи пакета приложений.
-p:CodesignEntitlements Путь к файлу прав, который указывает необходимые для приложения права. Задайте значение Platforms\MacCatalyst\Entitlements.plist.
-p:PackageSigningKey Ключ подписи пакета, используемый при подписи пакета. Задайте имя сертификата установщика, как показано в keychain Access.

Предупреждение

Попытка опубликовать решение .NET MAUI приведет dotnet publish к попытке опубликовать каждый проект в решении по отдельности, что может привести к проблемам при добавлении других типов проектов в решение. dotnet publish Поэтому команда должна быть область в проект приложения .NET MAUI.

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

Параметр Значение
-p:ApplicationTitle Отображаемая пользователем имя приложения.
-p:ApplicationId Уникальный идентификатор приложения, например com.companyname.mymauiapp.
-p:ApplicationVersion Версия сборки, идентифицирующая итерацию приложения.
-p:ApplicationDisplayVersion Номер версии приложения.

Полный список свойств сборки см. в разделе "Свойства файла Project".

Важно!

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

Например, используйте следующую команду, чтобы создать и подписать PKG на Компьютере Mac для распространения через Mac App Store:

dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)"

Примечание.

В .NET 8 dotnet publish команда по умолчанию использует Release конфигурацию. Поэтому конфигурация сборки может быть опущена из командной строки.

Публикация сборок, подписей и пакетов приложения, а затем копирует PKG в bin/Release/net8.0-maccatalyst/publish/folder. Если вы публикуете приложение с использованием только одной архитектуры, оно будет опубликовано в bin/Release/net8.0-maccatalyst/{architecture}/publish/ folder.

Во время процесса подписывания может потребоваться ввести пароль для входа и разрешить codesign и productbuild запустить:

Allow codesign to sign your app on your Mac.Allow productbuild to sign your app on your Mac.

Дополнительные сведения о команде dotnet publish см. в статье dotnet publish.

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

Альтернативой указанию параметров сборки в командной строке является указание параметров в файле проекта.<PropertyGroup> В следующей таблице перечислены некоторые распространенные свойства сборки:

Свойство Значение
<ApplicationTitle> Отображаемая пользователем имя приложения.
<ApplicationId> Уникальный идентификатор приложения, например com.companyname.mymauiapp.
<ApplicationVersion> Версия сборки, идентифицирующая итерацию приложения.
<ApplicationDisplayVersion> Номер версии приложения.
<CodesignKey> Имя ключа подписывания кода. Задайте имя сертификата распространения, как показано в keychain Access.
<CodesignEntitlements> Путь к файлу прав, который указывает необходимые для приложения права. Задайте значение Platforms\MacCatalyst\Entitlements.plist.
<CodesignProvision> Профиль подготовки, используемый при подписи пакета приложений.
<CreatePackage> true Задайте для этого значение, чтобы пакет (PKG) был создан для приложения в конце сборки.
<EnableCodeSigning> Задайте для true включения подписывания кода.
<EnablePackageSigning> Задайте для true того, чтобы созданный пакет был подписан.
<MtouchLink> Режим ссылки для проекта, который может быть None, SdkOnlyили Full.
<PackageSigningKey> Ключ подписи пакета, используемый при подписи пакета. Задайте имя сертификата установщика, как показано в keychain Access.

Полный список свойств сборки см. в разделе "Свойства файла Project".

Важно!

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

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

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
  <MtouchLink>SdkOnly</MtouchLink>
  <EnableCodeSigning>True</EnableCodeSigning>
  <EnablePackageSigning>true</EnablePackageSigning>
  <CreatePackage>true</CreatePackage>
  <CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp</CodesignProvision>
  <CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
  <PackageSigningKey>3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
</PropertyGroup>

В этом примере <PropertyGroup> добавляется условие проверка, что предотвращает обработку параметров, если условие проверка не передается. Условие проверка ищет два элемента:

  1. Для конфигурации сборки задано значение Release.
  2. Целевая платформа имеет значение, содержащее текст net8.0-maccatalyst.
  3. Для платформы задано значение AnyCPU.

Если какие-либо из этих условий завершаются ошибкой, параметры не обрабатываются. Более важно, <CodesignKey><CodesignProvision>что параметры и <PackageSigningKey> параметры не заданы, предотвращая подпись приложения.

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

dotnet build -f net8.0-maccatalyst -c Release

Примечание.

В .NET 8 dotnet publish команда по умолчанию использует Release конфигурацию. Поэтому конфигурация сборки может быть опущена из командной строки.

Публикация сборок, подписей и пакетов приложения, а затем копирует PKG в bin/Release/net8.0-maccatalyst/publish/folder.

Отправка в Магазин приложений Mac

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

Чтобы распространить приложение через Магазин приложений Mac Или TestFlight, необходимо создать запись приложения в App Store Подключение. Эта запись содержит все сведения о приложении, так как оно будет отображаться в App Store и все сведения, необходимые для управления приложением во время процесса распространения. Дополнительные сведения см. в статье "Создание записи приложения" на developer.apple.com.

Транспортировщик можно использовать для отправки приложения в Mac App Store. Это также поможет выявить ошибки с пакетами приложений, которые останавливают успешную отправку.

См. также