Publicación de una aplicación Mac Catalyst para distribución ad hoc
Al distribuir aplicaciones Mac Catalyst fuera de Mac App Store, también puedes elegir distribuir tu aplicación a un número limitado de usuarios en dispositivos registrados. Esto se conoce como distribución ad hoc y se usa principalmente para probar aplicaciones dentro de un grupo de personas. Pero, se limita a 100 dispositivos por año de pertenencia y los dispositivos deben agregarse a tu cuenta de desarrollador de Apple. Los miembros del programa para desarrolladores de Apple y Apple Developer Enterprise Program pueden usar este enfoque de distribución.
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 Mac Catalyst de .NET Multi-platform App UI (.NET MAUI) fuera de Mac App Store con distribución ad hoc, deberás crear un perfil de aprovisionamiento de desarrollo específico para él. 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 desarrollo ad hoc contiene un identificador de aplicación, un certificado de desarrollo y una lista de los dispositivos que pueden instalar la aplicación. Tendrás que crear un certificado de desarrollo para identificarte tú o tu organización, si aún no tienes uno.
El proceso para aprovisionar una aplicación Mac Catalyst de .NET MAUI para distribución ad hoc es el siguiente:
- Crea una solicitud de firma de certificados. Para obtener más información, consulta Creación de una solicitud de firma de certificado.
- Crea un certificado de desarrollo. Para obtener más información, consulta Creación de un certificado de desarrollo.
- Crea un identificador de aplicación. Para obtener más información, consulta Creación de un Id. de aplicación.
- Agrega dispositivos a tu cuenta de desarrollador de Apple. Para obtener más información, consulta Adición de dispositivos.
- Creación de un perfil de aprovisionamiento. Para obtener más información, consulta Creación de un perfil de aprovisionamiento.
- Descarga tu perfil de aprovisionamiento. Para obtener más información, consulta Descargar tu perfil de aprovisionamiento en Xcode.
Importante
En este artículo se muestra el aprovisionamiento para la distribución ad hoc mediante una cuenta de desarrollador de Apple que forma parte del programa para desarrolladores de Apple. También se puede usar para una cuenta de desarrollador de Apple que forme parte de Apple Developer Enterprise Program, ya que los pasos necesarios son en gran medida idénticos.
Después, una vez completado el aprovisionamiento, debes preparar tu aplicación para su publicación y, luego, publicarla con el siguiente proceso:
- Opcionalmente, agrega derechos a la aplicación. Para obtener más información, consulta Agregar derechos.
- Actualiza el archivo Info.plist de la aplicación. Para obtener más información, consulta Actualización de Info.plist.
- 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:
En el equipo Mac, inicie Acceso a llaves.
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....
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.
En el cuadro de diálogo Asistente para Certificados, introduce un nombre para la llave en el campo Nombre común.
En el cuadro de diálogo Asistente para certificados, deja vacío el campo Dirección de correo electrónico de CA.
En el cuadro de diálogo Asistente para certificados, elige el botón de selección Guardado en disco y selecciona Continuar:
Guarda la solicitud de firma de certificado en una ubicación conocida.
En el cuadro de diálogo Asistente para certificados, selecciona el botón Listo.
Cierra Acceso a Llaveros.
Creación de un certificado de desarrollo
La CSR permite generar un certificado de desarrollo, que confirma la identidad. El certificado de desarrollo debe crearse con el identificador de Apple para tu cuenta de desarrollador de Apple:
En un explorador web, inicia sesión en tu cuenta de desarrollador de Apple.
En la cuenta de desarrollador de Apple, selecciona la pestaña Certificates, IDs Profiles.
En la página Certificates, Identifiers & Profiles, haz clic en el botón + para crear un nuevo certificado.
En la página Create a New Certificate, selecciona el botón de radio Apple Development antes de seleccionar el botón Continue:
En la página Create a New Certificate, selecciona Choose File.
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.En la página Create a New Certificate, selecciona el botón Continue:
En la página Descargar el certificado, selecciona el botón Descargar:
El archivo de certificado (un archivo con una extensión
.cer
) se descargará en la ubicación elegida.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 My certificates en Keychain Access y comienza con Apple Development:
Nota:
Anota el nombre completo del certificado en Acceso a Llaveros. Será necesario al firmar la aplicación.
Creación de un perfil de desarrollo
Un perfil de aprovisionamiento de desarrollo ad hoc permite que la aplicación Mac Catalyst de .NET MAUI esté firmada digitalmente, de modo que se pueda instalar en equipos Mac específicos. Un perfil de aprovisionamiento de desarrollo ad hoc contiene un identificador de aplicación, un certificado de desarrollo y una lista de los dispositivos que pueden instalar la aplicació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:
En tu cuenta de desarrollador de Apple, ve a Certificates, IDs & Profiles.
En la página Certificates, IDs & Profiles, selecciona la pestaña Identifiers.
En la página Identifiers, selecciona el botón + para crear un nuevo identificador de aplicación.
En la página Register a new identifier, selecciona el botón de radio App IDs antes de seleccionar el botón Continue:
En la página Register a new identifier, selecciona App antes de seleccionar el botón Continue:
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:
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.
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.
En la página Register an App ID, selecciona el botón Continue.
En la página Confirm your App ID, selecciona el botón Register.
Adición de dispositivos
Al crear un perfil de aprovisionamiento para la distribución ad hoc, el perfil debe incluir qué dispositivos pueden ejecutar la aplicación. Antes de seleccionar los dispositivos que se van a agregar al perfil de aprovisionamiento, primero debes agregar dispositivos a tu cuenta de desarrollador de Apple. Esto se puede lograr con los siguientes pasos:
Selecciona el elemento de menú Apple > Acerca de este Mac.
En la pestaña Información general, selecciona el botón Informe del sistema....
En el Informe del sistema, selecciona el expansor Hardware para ver la información general del hardware. El informe muestra el identificador único universal (UUID) como UUID de hardware en macOS 10.15 y versiones anteriores, o UUID de aprovisionamiento en macOS 11.0 y versiones posteriores.
Selecciona el valor de UUID de hardware o UDID de aprovisionamiento y cópialo en el Portapapeles.
En un explorador web, ve a la sección Dispositivos en la Cuenta de desarrollador de Apple y haz clic en el botón +.
En la página Registrar un nuevo dispositivo, establece la Plataforma en macOS y proporciona un nombre para el nuevo dispositivo. Después, pega el identificador del Portapapeles en el campo Id. de dispositivo (UUID) y haz clic en el botón Continuar:
En la página Registrar un nuevo dispositivo, revisa la información y, después, haz clic en el botón Registrar.
Repite los pasos anteriores para cualquier equipo Mac en el que quieras implementar tu aplicación Mac Catalyst de .NET MAUI mediante distribución ad hoc.
Creación de un perfil de aprovisionamiento
Una vez que se ha creado el identificador de aplicación, debes crear el perfil de aprovisionamiento de desarrollo. Este perfil permite firmar digitalmente la aplicación para que se pueda instalar en equipos Mac específicos.
Para crear un perfil de aprovisionamiento para distribución ad hoc:
En la página Certificates, Identifiers & Profiles de la cuenta de desarrollador de Apple, selecciona la pestaña Profiles.
En la pestaña Profiles, haz clic en el botón + para crear un nuevo perfil.
En la página Register a New Provisioning Profile, selecciona el botón de radio macOS App Development antes de hacer clic en el botón Continue:
En la página Generate a Provisioning Profile, selecciona el botón de radio Mac Catalyst. 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:
En la página Generate a Provisioning Profile, activa la casilla correspondiente al certificado de desarrollo antes de hacer clic en el botón Continuar:
En la página Generate a Provisioning Profile, selecciona los dispositivos en los que se instalará la aplicación y, luego, haz clic en el botón Continue.
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:
Nota:
Anota el nombre del perfil de aprovisionamiento, ya que será necesario cuando firmes tu aplicación.
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:
En el equipo Mac, inicia Xcode.
En Xcode, selecciona el elemento de menú Xcode > Preferencias....
En el cuadro de diálogo Preferencias, selecciona la pestaña Cuentas.
En la pestaña Cuentas, haz clic en el botón + para agregar la cuenta de desarrollador de Apple a Xcode:
En el menú emergente de tipo de cuenta, selecciona ID de Apple y después haz clic en el botón Continuar:
En el menú emergente de inicio de sesión, escribe el ID de Apple y haz clic en el botón Siguiente.
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 :
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.
En la pestaña Cuentas, haz clic en el botónDescargar perfiles manuales para descargar los perfiles de aprovisionamiento:
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 habilitado para las aplicaciones Mac Catalyst que se distribuyen a través de Mac App Store y, opcionalmente, se pueden habilitar para aplicaciones Mac Catalyst que se distribuyen fuera 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 clave 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 distribuir la aplicación, debes actualizar su archivo Info.plist con información adicional.
Nota:
Aunque no es un requisito actualizar el archivo Info.plist de la aplicación al distribuirlo para realizar pruebas, estas actualizaciones serán necesarias al distribuir la versión de prueba final de la aplicación. Por lo tanto, es recomendable realizar estas actualizaciones.
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.
Establecimiento de la clave de copyright
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.
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. Puedes proporcionar información sobre el uso del cifrado de la aplicación en su archivo Info.plist.
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: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écelo en Platforms\MacCatalyst\Entitlements.plist . |
-p:RuntimeIdentifier |
Identificador en tiempo de ejecución (RID) del proyecto. Las compilaciones de versiones de aplicaciones Mac Catalyst de .NET MAUI usan maccatalyst-x64 y maccatalyst-arm64 como identificadores en tiempo de ejecución, para admitir aplicaciones universales. Para admitir solo una arquitectura única, especifica maccatalyst-x64 o maccatalyst-arm64 . |
-p:UseHardenedRuntime |
Establécelo en true para habilitar el tiempo de ejecución protegido, que es necesario para las aplicaciones de Mac Catalyst que se distribuyen fuera de Mac App Store. |
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 |
El número de versión de la aplicación. |
-p:RuntimeIdentifier |
Identificador en tiempo de ejecución (RID) del proyecto. Las compilaciones de versiones de aplicaciones Mac Catalyst de .NET MAUI usan maccatalyst-x64 y maccatalyst-arm64 como identificadores en tiempo de ejecución, para admitir aplicaciones universales. Para admitir solo una arquitectura única, especifica maccatalyst-x64 o maccatalyst-arm64 . |
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 archivo .pkg en un equipo Mac, para la distribución ad hoc a los usuarios de dispositivos registrados:
dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:CodesignKey="Apple Development: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp (Ad-hoc)" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:UseHardenedRuntime=true
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 publica 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 que codesign
se ejecute:
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ézcalo 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. |
<MtouchLink> |
El modo de vínculo para el proyecto, que puede ser None , SdkOnly o Full . |
<RuntimeIdentifier> |
Identificador en tiempo de ejecución (RID) del proyecto. Las compilaciones de versiones de aplicaciones Mac Catalyst de .NET MAUI usan maccatalyst-x64 y maccatalyst-arm64 como identificadores en tiempo de ejecución, para admitir aplicaciones universales. Para admitir solo una arquitectura única, especifica maccatalyst-x64 o maccatalyst-arm64 . |
<UseHardenedRuntime> |
Establécelo en true para habilitar el tiempo de ejecución protegido, que es necesario para las aplicaciones de Mac Catalyst que se distribuyen fuera de Mac App Store. |
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 ad hoc a los usuarios en dispositivos registrados:
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<MtouchLink>SdkOnly</MtouchLink>
<EnableCodeSigning>True</EnableCodeSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Apple Development: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp (Ad-hoc)</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
<UseHardenedRuntime>true</UseHardenedRuntime>
</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:
- La configuración de compilación está establecida en
Release
. - El marco de trabajo de destino está establecida en algo que contiene el texto
net8.0-maccatalyst
. - La plataforma está establecida en
AnyCPU
.
Si se produce un error en alguna de estas condiciones, la configuración no se procesará. Lo más importante es que los valores <CodesignKey>
y <CodesignProvision>
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
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/.
Distribución de la aplicación para pruebas
El archivo .pkg se puede distribuir a los usuarios en dispositivos registrados, donde se puede ejecutar haciendo doble clic en el archivo .pkg para instalar la aplicación.
Para obtener información sobre cómo abrir aplicaciones de forma segura en un equipo Mac, consulta Abrir apps de forma segura en el Mac en support.apple.com.
Consulta también
- Distribución de la aplicación a dispositivos registrados en developer.apple.com
- Preparación de la aplicación para la distribución en developer.apple.com
- Hardened Runtime en developer.apple.com