Compartir a través de


Publicación de una aplicación Mac Catalyst para su distribución en Mac App Store

El enfoque más común para distribuir aplicaciones Mac Catalyst a los usuarios es a través de Mac App Store. Las aplicaciones se envían a Mac App Store a través de una herramienta en línea denominada App Store Connect. Solo los desarrolladores que pertenecen al Apple Developer Program tienen acceso a esta herramienta. Los miembros del Programa para desarrolladores empresariales de Apple no tienen acceso. Todas las aplicaciones que se envían a Mac App Store requieren la aprobación de Apple.

La distribución de una aplicación Mac Catalyst requiere que la aplicación se aprovisione mediante un perfil de aprovisionamiento. Los perfiles de aprovisionamiento son archivos que contienen información sobre la firma de código, así como la identidad de la aplicación y su mecanismo de distribución previsto.

Para distribuir una aplicación .NET Multi-platform App UI (.NET MAUI) Mac Catalyst, deberás crear un perfil de aprovisionamiento de distribución específico. Este perfil permite que la aplicación se firme digitalmente para su publicación de modo que se pueda instalar en equipos Mac. Un perfil de aprovisionamiento de distribución contiene un identificador de aplicación y un certificado de distribución. Tendrás que crear un certificado de distribución para identificarte tú o a tu organización, si aún no tienes uno. Además, tendrás que crear un certificado de instalador de Mac para firmar el paquete del instalador de la aplicación para enviarlo a Mac App Store.

El proceso para aprovisionar una aplicación .NET MAUI Mac Catalyst para su distribución a través de Mac App Store es el siguiente:

  1. Cree una solicitud de firma de certificados. Para obtener más información, consulta Creación de una solicitud de firma de certificado.
  2. Creación de un certificado de distribución. Para obtener más información, consulta Creación de un certificado de distribución.
  3. Crear un certificado de instalador. Para obtener más información, consulta Creación de un certificado de instalador.
  4. Crea un identificador de aplicación. Para obtener más información, consulta Creación de un Id. de aplicación.
  5. Configura el id. de la aplicación. Para obtener más información, consulta Configuración del id. de aplicación.
  6. Creación de un perfil de aprovisionamiento. Para obtener más información, consulta Creación de un perfil de aprovisionamiento.
  7. Descarga tu perfil de aprovisionamiento. Para obtener más información, consulta Descargar tu perfil de aprovisionamiento en Xcode.

Después, una vez completado el aprovisionamiento, debes preparar la aplicación para su publicación y, luego, publicarla con el siguiente proceso:

  1. Agrega los derechos necesarios a la aplicación. Para obtener más información, consulta Agregar derechos.
  2. Actualiza el archivo Info.plist de la aplicación. Para obtener más información, consulta Actualización de Info.plist.
  3. Publica la aplicación mediante la línea de comandos. Para obtener más información, consulta Publicación mediante la línea de comandos.

Creación de una solicitud de firma de certificado

Antes de crear un certificado de distribución, primero deberás crear una solicitud de firma de certificado (CSR) en Acceso a cadena de claves en un equipo Mac:

  1. En el equipo Mac, inicie Acceso a llaves.

  2. En el menú Acceso a Llaveros, selecciona los elementos de menú Acceso a Llaveros > Asistente para Certificados > Solicitar un certificado de una autoridad de certificación....

  3. En el cuadro de diálogo Asistente para Certificados, introduce una dirección de correo electrónico en el campo Dirección de correo electrónico de usuario.

  4. En el cuadro de diálogo Asistente para Certificados, introduce un nombre para la llave en el campo Nombre común.

  5. En el cuadro de diálogo Asistente para certificados, deja vacío el campo Dirección de correo electrónico de CA.

  6. En el cuadro de diálogo Asistente para certificados, elige el botón de selección Guardado en disco y selecciona Continuar:

    Cuadro de diálogo del asistente para certificados.

  7. Guarda la solicitud de firma de certificado en una ubicación conocida.

  8. En el cuadro de diálogo Asistente para certificados, selecciona el botón Listo.

  9. Cierra Acceso a Llaveros.

Creación de un certificado de distribución

La CSR permite generar un certificado de distribución, que confirma la identidad. El certificado de distribución debe crearse con el id. de Apple para la cuenta de Apple Developer:

  1. En un explorador web, inicia sesión en tu cuenta de Apple Developer.

  2. En la cuenta de desarrollador de Apple, selecciona la pestaña Certificates, IDs Profiles.

  3. En la página Certificates, Identifiers & Profiles, haz clic en el botón + para crear un nuevo certificado.

  4. En la página Crear un nuevo certificado, selecciona el botón de radio Distribución de Apple antes de seleccionar el botón Continuar:

    Crear un certificado de distribución de Apple.

  5. En la página Create a New Certificate, selecciona Choose File.

    Carga la solicitud de firma de certificado para el certificado de distribución de Apple.

  6. En el cuadro de diálogo Choose Files to Upload, selecciona el archivo de solicitud de certificado creado antes (un archivo con una extensión de archivo .certSigningRequest) y, después, Upload.

  7. En la página Create a New Certificate, selecciona el botón Continue:

    Continúa generando el certificado de distribución.

  8. En la página Download Your Certificate, selecciona el botón Download:

    Descarga el certificado de distribución de Apple.

    El archivo de certificado (un archivo con una extensión .cer) se descargará en la ubicación elegida.

  9. En el equipo Mac, haz doble clic en el archivo de certificado descargado para instalar el certificado en el llavero. El certificado aparece en la categoría Mis certificados, en Acceso a Llaveros, y comienza por Distribución de Apple:

    Acceso a Llaveros que muestra el certificado de distribución.

    Nota:

    Anota el nombre completo del certificado en Acceso a Llaveros. Será necesario al firmar la aplicación.

Creación de un certificado de instalador

CSR permite generar un certificado de instalador, que es necesario para firmar el paquete de instalador de la aplicación para su envío a Mac App Store. El certificado de instalador debe crearse con el ID de Apple para la cuenta de desarrollador de Apple:

  1. En la cuenta de desarrollador de Apple, selecciona la pestaña Certificates, IDs Profiles.

  2. En la página Certificates, Identifiers & Profiles, haz clic en el botón + para crear un nuevo certificado.

  3. En la página Create a New Certificate, selecciona el botón de radio Mac Installer Distribution antes de seleccionar el botón Continue:

    Crear un certificado de distribución de instalador de Mac.

  4. En la página Create a New Certificate, selecciona Choose File.

    Carga la solicitud de firma de certificado para el certificado del instalador de Mac.

  5. En el cuadro de diálogo Choose Files to Upload, selecciona el archivo de solicitud de certificado creado antes (un archivo con una extensión de archivo .certSigningRequest) y, después, Upload.

  6. En la página Create a New Certificate, selecciona el botón Continue:

    Continúa generando el certificado del instalador.

  7. En la página Download Your Certificate, selecciona el botón Download:

    Descarga el certificado del instalador de Mac.

    El archivo de certificado (un archivo con una extensión .cer) se descargará en la ubicación elegida.

  8. En el equipo Mac, haz doble clic en el archivo de certificado descargado para instalar el certificado en el llavero. El certificado aparece en la categoría Mis certificados en Acceso a Llaveros y comienza por Instalador para desarrolladores de Mac de terceros:

    Acceso a Llaveros que muestra el certificado del instalador.

    Nota:

    Anota el nombre completo del certificado en Acceso a Llaveros. Será necesario al firmar la aplicación.

Creación de un perfil de distribución

Un perfil de aprovisionamiento de distribución permite que la aplicación .NET MAUI Mac Catalyst esté firmada digitalmente para su lanzamiento, de modo que se pueda instalar en otro equipo Mac. Un perfil de aprovisionamiento para la distribución en Mac App Store contiene un identificador de aplicación y un certificado de distribución.

Creación de un id. de aplicación

Se requiere un identificador de aplicación para identificar la aplicación que distribuyes. Un identificador de aplicación es similar a una cadena DNS inversa que identifica de forma única una aplicación y debe ser idéntica al identificador del lote de la aplicación. Puedes usar el mismo identificador de aplicación que usaste al implementar la aplicación en un dispositivo para realizar pruebas.

Hay dos tipos de identificadores de aplicación:

  • Carácter comodín. Un identificador de aplicación comodín permite usar un identificador de aplicación para que coincida con varias aplicaciones, y normalmente, adopta el formato com.domainname.*. Puedes usar un identificador de aplicación comodín para distribuir varias aplicaciones y debes usarlo para las aplicaciones que no habilitan las funciones específicas de la aplicación.
  • Explícita. Un identificador de aplicación explícito es único para una sola aplicación y normalmente adopta el formato com.domainname.myid. Un identificador de aplicación explícito permite la distribución de una aplicación, con un identificador de la agrupación coincidente. Los identificadores de aplicación explícitos se usan normalmente para las aplicaciones que habilitan funciones específicas de la aplicación, como Apple Pay o Game Center. Para obtener más información, consulta Funcionalidades.

Para crear un nuevo identificador de aplicación:

  1. En tu cuenta de desarrollador de Apple, ve a Certificates, IDs & Profiles.

  2. En la página Certificates, IDs & Profiles, selecciona la pestaña Identifiers.

  3. En la página Identifiers, selecciona el botón + para crear un nuevo identificador de aplicación.

  4. En la página Register a new identifier, selecciona el botón de radio App IDs antes de seleccionar el botón Continue:

    Crear un identificador de aplicación.

  5. En la página Register a new identifier, selecciona App antes de seleccionar el botón Continue:

    Registrar un identificador de aplicación.

  6. En la página Registro de un id. de aplicación, introduce una descripción y selecciona el botón de radio Explícito o el id. de paquete de caracteres comodín. Después, introduce el id. de agrupación de tu aplicación en formato DS inverso:

    Especifica el identificador de agrupación de la aplicación.

    Importante

    El identificador de agrupación que escribas debe corresponder al identificador de agrupación del archivo Info.plist del proyecto de aplicación.

    El identificador de agrupación de una aplicación .NET MAUI se almacena en el archivo de proyecto como la propiedad Identificador de aplicación. En Visual Studio, en Explorador de soluciones, haz clic con el botón derecho en el proyecto de tu aplicación .NET MAUI y selecciona Propiedades. Después, accede a la pestaña Configuración de MAUI Compartido> General. El identificador de aplicación muestra el identificador del lote.

    Cuando se actualiza el valor del campo Id. de aplicación, el valor de Identificador de agrupación en el archivo Info.plist se actualizará automáticamente.

  7. En la página Registro de un id. de aplicación, selecciona las capacidades que usa la aplicación. Cualquier capacidad debe configurarse tanto en esta página como en el archivo Entitlements.plist del proyecto de tu aplicación. Para ver más información, consulta Funcionalidades y Derechos.

  8. En la página Register an App ID, selecciona el botón Continue.

  9. En la página Confirm your App ID, selecciona el botón Register.

Configuración del identificador de aplicación

De forma predeterminada, una aplicación Mac Catalyst usa el mismo identificador de agrupación que una aplicación iOS para que pueda ofrecer las aplicaciones juntas como una compra universal en Mac App Store. Otra alternativa es especificar un identificador de agrupación único para ofrecer la aplicación como producto independiente.

Para configurar el identificador de aplicación:

  1. En tu cuenta de desarrollador de Apple, ve a Certificates, IDs & Profiles.

  2. En la página Certificates, IDs & Profiles, selecciona la pestaña Identifiers.

  3. En la página Identifiers, selecciona el identificador de aplicación que acabas de crear.

  4. En la página Edit your App ID Configuration, desplázate hasta la parte inferior de la página y activa la casilla de la funcionalidad Mac Catalyst. Luego selecciona el botón Configure.

    Habilitar la funcionalidad Mac Catalyst.

  5. En la ventana emergente Configure Bundle ID for Mac Catalyst, selecciona el botón de radio Use existing Mac App ID. En la lista desplegable App ID, selecciona el identificador de aplicación para la aplicación iOS asociada de Mac Catalyst o el identificador de aplicación que has creado si ofreces la aplicación Mac Catalyst como un producto independiente. Luego selecciona el botón Save.

    Configurar el id. de agrupación para Mac Catalyst.

  6. En la página Edit your App ID Configuration, selecciona el botón Save:

    Guarda la configuración de Mac Catalyst.

  7. En el menú emergente Modify App Capabilities, selecciona el botón Confirm:

    Modifica las funcionalidades de la aplicación.

Creación de un perfil de aprovisionamiento

Una vez creado y configurado el identificador de aplicación, debes crear un perfil de aprovisionamiento de distribución. Este perfil permite que la aplicación se firme digitalmente para su publicación de modo que se pueda instalar en equipos Mac.

Para crear un perfil de aprovisionamiento para la distribución en Mac App Store:

  1. En la página Certificates, Identifiers & Profiles de la cuenta de desarrollador de Apple, selecciona la pestaña Profiles.

  2. En la pestaña Profiles, haz clic en el botón + para crear un nuevo perfil.

  3. En la página Register a New Provisioning Profile, selecciona el botón de radio Mac App Store antes de hacer clic en el botón Continue:

    Registra un perfil de aprovisionamiento para la distribución de la tienda de aplicaciones.

  4. En la página Generate a Provisioning Profile, selecciona el botón de radio Mac. Luego, en la lista desplegable App ID, selecciona el identificador de aplicación que creaste anteriormente antes de hacer clic en el botón Continue:

    Selecciona el identificador de aplicación.

  5. En la página Generate a Provisioning Profile, selecciona el botón de radio que corresponde con tu certificado de distribución antes de hacer clic en el botón Continuar:

    Selecciona el certificado de distribución.

  6. En la página Generate a Provisioning Profile, introduce un nombre para el perfil de aprovisionamiento antes de hacer clic en el botón Generate:

    Genera el perfil de aprovisionamiento.

    Nota:

    Anota el nombre del perfil de aprovisionamiento, ya que será necesario cuando firmes tu aplicación.

  7. En la página Generate a Provisioning Profile, haz clic opcionalmente en el botón Download para descargar tu perfil de aprovisionamiento.

    Nota:

    No es necesario descargar el perfil de aprovisionamiento ahora. En cambio, lo harás en Xcode.

Descarga del perfil de aprovisionamiento en Xcode

Después de crear un perfil de aprovisionamiento en la cuenta de desarrollador de Apple, Xcode puede descargarlo para que esté disponible para firmar la aplicación:

  1. En el equipo Mac, inicia Xcode.

  2. En Xcode, selecciona el elemento de menú Xcode > Preferencias....

  3. En el cuadro de diálogo Preferencias, selecciona la pestaña Cuentas.

  4. En la pestaña Cuentas, haz clic en el botón + para agregar la cuenta de desarrollador de Apple a Xcode:

    Cuadro de diálogo Cuentas de Xcode en preferencias.

  5. En el menú emergente de tipo de cuenta, selecciona ID de Apple y después haz clic en el botón Continuar:

    Xcode selecciona el tipo de cuenta a la que quieres agregarle el elemento emergente.

  6. En el menú emergente de inicio de sesión, escribe el ID de Apple y haz clic en el botón Siguiente.

  7. En el menú emergente de inicio de sesión, escribe la contraseña de ID de Apple y haz clic en el botón Siguiente :

    Inicio de sesión de la cuenta de Apple de Xcode.

  8. En la pestaña Cuentas, haz clic en el botón Administrar certificados... para asegurarte de que se ha descargado el certificado de distribución.

  9. En la pestaña Cuentas, haz clic en el botónDescargar perfiles manuales para descargar los perfiles de aprovisionamiento:

    Detalles de la cuenta del Programa de desarrolladores de Apple de Xcode.

  10. Espera a que se complete la descarga y cierra Xcode.

Adición de derechos

El espacio aislado de aplicaciones de Apple restringe el acceso a los recursos del sistema y a los datos de usuario en aplicaciones Mac, para contener los daños si una aplicación se pone en peligro. Debe estar habilitada para las aplicaciones mac Catalyst que se distribuyen a través de Mac App Store.

Para ello, agrega un archivo Entitlements.plist a la carpeta Platforms/MacCatalyst del proyecto de aplicación .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>

El derecho del espacio aislado de la aplicación se define mediante la clave com.apple.security.app-sandbox, de tipo boolean. Para obtener más información sobre el espacio aislado de aplicaciones, consulta Protecting user data with App Sandbox en developer.apple.com. Para obtener más información sobre el derecho del espacio aislado de aplicaciones, consulta App Sandbox Entitlement.

Si la aplicación abre conexiones de red salientes, también deberás agregar la com.apple.security.network.client clave, de tipo boolean, al archivo 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>

Para obtener más información sobre el derecho de las conexiones de red salientes, consulta com.apple.security.network.client en developer.apple.com.

Actualización de Info.plist

Antes de publicar la aplicación, debes actualizar su archivo Info.plist con información adicional para asegurarte de que la aplicación se puede cargar en Mac App Store y para ayudar a garantizar un proceso de revisión de Mac App Store sin problemas.

Especificación de la expresión de interfaz de usuario

Una aplicación Mac Catalyst se puede ejecutar en la expresión de la interfaz de usuario de iPad o Mac:

  • La expresión de la interfaz de usuario de iPad indica a macOS que escale la interfaz de usuario de la aplicación para que coincida con el entorno de visualización de Mac, a la vez que se conserva la apariencia del iPad.
  • La expresión de interfaz de usuario de Mac no escala la interfaz de usuario de la aplicación para que coincida con el entorno de visualización de Mac. Algunos controles cambian de tamaño y apariencia e interactuar con ellos idéntico a interactuar con los controles AppKit.

De forma predeterminada, las aplicaciones de .NET MAUI Mac Catalyst usan la expresión de interfaz de usuario de iPad. Si este es tu comportamiento deseado, asegúrate de que el archivo Info.plist de la aplicación solo especifica 2 como valor de la clave UIDeviceFamily:

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

Para adoptar la expresión de la interfaz de usuario de Mac, actualiza el archivo Info.plist para especificar 6 como el valor de la clave UIDeviceFamily:

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

Para obtener más información sobre las expresiones de interfaz de usuario de Mac Catalyst, consulta Especificación de la expresión de interfaz de usuario para la aplicación Mac Catalyst.

Establecimiento del idioma y la región predeterminados de la aplicación

Establece la clave CFBundleDevelopmentRegion del archivo Info.plistde la aplicación en un string que represente la región de desarrollo nativo de localización:

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

El valor de la clave debe ser un designador de idioma, con un designador de región opcional. Para obtener más información, consulta CFBundleDevelopmentRegion en developer.apple.com.

Establece la clave NSHumanReadableCopyright del archivo Info-plist en un string que represente el aviso de copyright legible para la aplicación:

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

Para obtener más información, consulta NSHumanReadableCopyright en developer.apple.com.

Establecimiento de la categoría de la aplicación

Las categorías ayudan a los usuarios a detectar la aplicación en Mac App Store. Puedes establecer la categoría principal de la aplicación en el archivo Info.plist:

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

Para obtener más información, consulta LSApplicationCategoryType en developer.apple.com.

Nota:

La categoría principal de la aplicación debe coincidir con la categoría principal establecida en App Store Connect.

Declaración del uso del cifrado de la aplicación

Si la aplicación usa cifrado y planeas distribuirla fuera del Estados Unidos o Canadá, está sujeta a los requisitos de cumplimiento de exportación de EE. UU. Cada vez que envías una versión de la aplicación a App Store Connect, se somete a una revisión de cumplimiento de las normativas de exportación de cifrado. Para evitar que App Store Connect te haga preguntas para guiarte a través de la revisión, puedes proporcionar la información necesaria en tu archivo info.plist de la aplicación.

Esto se logra agregando la clave ITSAppUsesNonExemptEncryption a tu info.plist de la aplicación con un valor boolean que indica si la aplicación usa cifrado:

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

Para obtener más información, consulta Complying with Encryption Export Regulations en developer.apple.com.

Publicar mediante la línea de comandos

Para publicar tu aplicación Mac Catalyst desde la línea de comandos de un equipo Mac, abre un terminal y ve a la carpeta del proyecto de la aplicación .NET MAUI. Ejecuta el comando dotnet publish con los parámetros siguientes:

Parámetro Valor
-f o --framework .NET Framework de destino, que es net8.0-maccatalyst.
-c o --configuration La configuración de compilación, que es Release.
-p:MtouchLink El modo de vínculo para el proyecto, que puede ser None, SdkOnly o Full.
-p:CreatePackage Establécelo en true para que se cree un paquete (.pkg) para la aplicación al final de la compilación.
-p:EnableCodeSigning Establécelo en true para que la firma de código esté habilitada.
-p:EnablePackageSigning Establécelo en true para que el paquete creado se firme.
-p:CodesignKey Nombre de la clave de firma de código. Establécelo en el nombre del certificado de distribución, tal como se muestra en Keychain Access.
-p:CodesignProvision Nombre del perfil de aprovisionamiento que se va a usar para firmar.
-p:CodesignEntitlements Ruta de acceso al archivo de derechos que especifica los derechos que requiere la aplicación. Establézcalo en Platforms\MacCatalyst\Entitlements.plist.
-p:PackageSigningKey Clave de firma del paquete que se va a usar al firmar el paquete. Establécelo en el nombre del certificado del instalador, tal como se muestra en Acceso a cadena de claves.

Advertencia

El intento de publicar una solución de .NET MAUI tendrá como resultado que el comando dotnet publish intente publicar cada proyecto de la solución de forma individual, lo que puede causar problemas cuando hayas agregado otros tipos de proyecto a tu solución. Por lo tanto, el comando dotnet publish debe tener como ámbito tu proyecto de aplicación de .NET MAUI.

Se pueden especificar parámetros de compilación adicionales en la línea de comandos, si no se proporcionan en <PropertyGroup> en tu archivo de proyecto. En la tabla siguiente se enumeran algunos de los parámetros comunes:

Parámetro Valor
-p:ApplicationTitle El nombre visible del usuario para la aplicación.
-p:ApplicationId El identificador único de la aplicación, como com.companyname.mymauiapp.
-p:ApplicationVersion La versión de la compilación que identifica una iteración de la aplicación.
-p:ApplicationDisplayVersion Número de versión de la API.

Para obtener una lista completa de las propiedades de compilación, consulta Project file properties.

Importante

Los valores de todos estos parámetros no tienen que proporcionarse en la línea de comandos. También se pueden proporcionar en el archivo del proyecto. Cuando se proporciona un parámetro en la línea de comandos y en el archivo del proyecto, el parámetro de línea de comandos tiene prioridad. Para obtener más información sobre cómo proporcionar propiedades de compilación en el archivo de proyecto, consultaDefine build properties in your project file.

Por ejemplo, usa el siguiente comando para compilar y firmar un .pkg en un equipo Mac, para su distribución a través de 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)"

Nota:

En .NET 8, el comando dotnet publish tiene como valor predeterminado la configuración Release. Por lo tanto, la configuración de la compilación se puede omitir desde la línea de comandos.

Publica compilaciones, signos y paquetes de la aplicación y después copia el archivo .pkg en la carpeta bin/Release/net8.0-maccatalyst/publish/. Si publicas la aplicación con una sola arquitectura, se publicará en la carpeta bin/Release/net8.0-maccatalyst/{architecture}/publish/.

Durante el proceso de firma es posible que sea necesario escribir la contraseña de inicio de sesión y permitir la ejecución de codesign y productbuild:

Permitir que codesign firme la aplicación en el equipo Mac.Permitir que productbuild firme la aplicación en el equipo Mac.

Para obtener más información sobre el comando dotnet publish, consulta Dotnet publish.

Definición de propiedades de compilación en el archivo de proyecto

Una alternativa a especificar parámetros de compilación en la línea de comandos es especificarlos en el archivo del proyecto en <PropertyGroup>. En la tabla siguiente se enumeran algunas de las propiedades de compilación comunes:

Propiedad Valor
<ApplicationTitle> El nombre visible del usuario para la aplicación.
<ApplicationId> El identificador único de la aplicación, como com.companyname.mymauiapp.
<ApplicationVersion> La versión de la compilación que identifica una iteración de la aplicación.
<ApplicationDisplayVersion> Número de versión de la API.
<CodesignKey> Nombre de la clave de firma de código. Establécelo en el nombre del certificado de distribución, tal como se muestra en Keychain Access.
<CodesignEntitlements> Ruta de acceso al archivo de derechos que especifica los derechos que requiere la aplicación. Establécelo en Platforms\MacCatalyst\Entitlements.plist.
<CodesignProvision> Nombre del perfil de aprovisionamiento que se va a usar para firmar.
<CreatePackage> Establécelo en true para que se cree un paquete (.pkg) para la aplicación al final de la compilación.
<EnableCodeSigning> Establécelo en true para que la firma de código esté habilitada.
<EnablePackageSigning> Establécelo en true para que el paquete creado se firme.
<MtouchLink> El modo de vínculo para el proyecto, que puede ser None, SdkOnly o Full.
<PackageSigningKey> Clave de firma del paquete que se va a usar al firmar el paquete. Establécelo en el nombre del certificado del instalador, tal como se muestra en Acceso a cadena de claves.

Para obtener una lista completa de las propiedades de compilación, consulta Project file properties.

Importante

Los valores de estas propiedades de compilación no tienen que proporcionarse en el archivo del proyecto. También se pueden proporcionar en la línea de comandos al publicar la aplicación. Esto te permite omitir valores específicos del archivo del proyecto.

En el ejemplo siguiente se muestra un grupo de propiedades típico para compilar y firmar la aplicación Mac Catalyst para la distribución de 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>

En este ejemplo <PropertyGroup> se agrega una comprobación de condición, lo que impide que se procese la configuración a menos que se supere la comprobación de condición. La comprobación de condición busca dos elementos:

  1. La configuración de compilación está establecida en Release.
  2. El marco de trabajo de destino está establecida en algo que contiene el texto net8.0-maccatalyst.
  3. La plataforma está establecida en AnyCPU.

Si se produce un error en alguna de estas condiciones, la configuración no se procesará. Lo que es más importante, los valores <CodesignKey>, <CodesignProvision> y <PackageSigningKey> no están establecidos lo que impide que la aplicación se firme.

Después de agregar el grupo de propiedades anterior, la aplicación se puede publicar desde la línea de comandos de un equipo Mac abriendo un terminal y yendo a la carpeta del proyecto de aplicación .NET MAUI. Ejecute el siguiente comando:

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

Nota:

En .NET 8, el comando dotnet publish tiene como valor predeterminado la configuración Release. Por lo tanto, la configuración de la compilación se puede omitir desde la línea de comandos.

Publica compilaciones, signos y paquetes de la aplicación y después copia el archivo .pkg en la carpeta bin/Release/net8.0-maccatalyst/publish/.

Cargar en Mac App Store

Una vez que una aplicación se ha firmado con un certificado de distribución de Apple, no se puede ejecutar localmente. En su lugar, se debe cargar en App Store Connect donde se volverá a firmar para habilitar la ejecución local.

Para distribuir la aplicación a través de Mac App Store o TestFlight, deberás crear un registro de aplicación en App Store Connect. Este registro incluye toda la información sobre la aplicación, tal como aparecerá en App Store y toda la información necesaria para administrar la aplicación a través del proceso de distribución. Para obtener más información, consulta Creación de un registro de aplicación en developer.apple.com.

Transporter se puede usar para enviar la aplicación a Mac App Store. También ayudará a identificar errores con paquetes de aplicaciones que detienen el envío correcto.

Consulta también