Funcionalidades de Mac Catalyst
En Mac Catalyst las aplicaciones .NET Multi-platform App UI (.NET MAUI) se ejecutan en un espacio aislado que proporciona un conjunto de reglas que limitan el acceso entre los recursos del sistema y la aplicación o los datos del usuario. Apple proporciona funcionalidades (a veces llamadas App Services) como método para extender la funcionalidad y ampliar el alcance de lo que pueden hacer las aplicaciones de Mac Catalyst. Para obtener más información sobre las funcionalidades, consulta Capabilities en developer.apple.com.
Las funcionalidades se agregan al perfil de aprovisionamiento de la aplicación y se usan al firmar el código de la aplicación. El perfil de aprovisionamiento debe contener un identificador de aplicación, que coincida con el identificador de agrupación de la aplicación, con las funcionalidades necesarias habilitadas. El perfil de aprovisionamiento debe crearse en la cuenta de desarrollador de Apple.
Las funcionalidades están estrechamente relacionadas con el concepto de derechos. Ambos solicitan la expansión del espacio aislado en el que se ejecuta la aplicación, para proporcionar funcionalidades adicionales. Los derechos se agregan normalmente al desarrollar la aplicación, mientras que las funcionalidades se agregan normalmente al firmar el código de la aplicación para su distribución. Para obtener más información sobre los derechos, consulta Derechos.
Agregar funcionalidades en tu cuenta de desarrollador de Apple
Las funcionalidades se pueden agregar al perfil de aprovisionamiento de la aplicación en tu cuenta de desarrollador de Apple. Se trata de un proceso de varios pasos que requiere la creación de un certificado de firma, un identificador de aplicación y un perfil de aprovisionamiento.
Al agregar una nueva funcionalidad al perfil de aprovisionamiento, también debes agregar la misma funcionalidad al archivo Entitlements.plist de la aplicación y asegurarte de que la aplicación consume este archivo. Para obtener más información, consulta Derechos. También puede ser necesario establecer claves de privacidad en Info.plist para determinadas funcionalidades.
Creación de un certificado de firma
La creación de un perfil de aprovisionamiento requiere que hayas creado previamente un certificado de firma. El tipo de certificado de firma depende del canal de distribución previsto para tu aplicación:
- Si quieres distribuir tu aplicación a través de Mac App Store, consulta Crear un certificado de distribución en Publicación de una aplicación Mac Catalyst para la distribución de Mac App Store.
- Si quieres distribuir la aplicación fuera de Mac App Store, consulta Creación de un certificado de aplicación de identificador de desarrolladoen Publicación de una aplicación Mac Catalyst para su distribución fuera de Mac App Store.
- Si piensa distribuir la aplicación a un número limitado de usuarios en dispositivos registrados, fuera de Mac App Store, consulta Creación de un certificado de desarrollo en Publicación de una aplicación Mac Catalyst para la distribución ad hoc.
Creación de una aplicación con App Service
Un identificador de aplicación es similar a una cadena DNS inversa, que identifica de forma única una aplicación y es necesaria para identificar la aplicación que estás distribuyendo. El identificador de aplicación debe ser idéntico al identificador del lote de tu aplicación.
Importante
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.
Hay dos tipos de identificador de aplicación: explícito y comodín. 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 instalar una aplicación, con un identificador del lote coincidente, en un dispositivo. Los identificadores de aplicación explícitos son necesarios para las aplicaciones que habilitan funcionalidades específicas de la aplicación.
Se puede crear un identificador de aplicación explícito con los pasos siguientes:
En un explorador web, ve a la sección Identifiers de tu cuenta de desarrollador de Apple y haz clic en el botón +.
En la página Register a new identifier, selecciona App IDs y selecciona Continue.
En la página Register a new identifier, selecciona el tipo de aplicación y haz clic en el botón Continue.
En la página Register an App ID, proporciona una Description y establece el Bundle ID en Explicit. Después, escribe un identificador de aplicación con el formato
com.domainname.myid
:En la página Register an App ID, habilita las funcionalidades necesarias en las pestañas Capabilities y App Services:
En la página Register an App ID, haz clic en el botón Continue.
En la página Confirm your App ID, revisa la información y, luego, haz clic en el botón Register. Siempre que tu identificador de aplicación se registre correctamente, volverás a la sección Identificadores de la cuenta de desarrollador de Apple.
En la página Identifiers, haz clic en el identificador de aplicación que acabas de crear.
En la página Edit your App ID Configuration, cualquiera de tus funcionalidades habilitadas que requieran configuración adicional tendrán un botón Configure:
Haz clic en los botones Configurar para configurar las funcionalidades habilitadas. Para obtener más información, consulta Configure app capabilities en developer.apple.com.
Creación de un perfil de aprovisionamiento
Una vez que hayas creado un identificador de aplicación, debes crear un perfil de aprovisionamiento para este. El perfil de aprovisionamiento que crees también dependerá del canal de distribución previsto para la aplicación:
- Si quieres distribuir tu aplicación a través de Mac App Store, consulta Crear un perfil de aprovisionamiento en Publicación de una aplicación Mac Catalyst para la distribución de Mac App Store.
- Si quieres distribuir tu aplicación fuera de Mac App Store, consulta Creación de un perfil de aprovisionamiento en Publicación de una aplicación Mac Catalyst para su distribución fuera de Mac App Store.
- Si tienes previsto distribuir tu aplicación a un número limitado de usuarios en dispositivos registrados, fuera de Mac App Store, consulta Creación de un perfil de aprovisionamiento en Publicación de una aplicación Mac Catalyst para la distribución ad hoc.
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 luego cierra Xcode.
Definición de propiedades de compilación en el archivo del proyecto
El archivo de proyecto de tu aplicación debe actualizarse para usar el certificado de firma, el perfil de aprovisionamiento y el archivo de derechos. Esto se puede lograr agregando las siguientes propiedades de compilación a un <PropertyGroup>
en el archivo del proyecto:
Propiedad | Valor |
---|---|
<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. |
<EnableCodeSigning> |
Establécelo en true para que la firma de código esté habilitada. |
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'">
<EnableCodeSigning>True</EnableCodeSigning>
<CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
</PropertyGroup>
Solución de problemas
En la lista siguiente se detallan los problemas comunes que pueden causar problemas al desarrollar una aplicación Mac Catalyst .NET MAUI que usa funcionalidades:
- Asegúrate de que se ha creado y registrado el identificador de aplicación correcto en la sección Identificadores de la cuenta de desarrollador de Apple.
- Asegúrate de que la funcionalidad se ha agregado al identificador de aplicación y de que la funcionalidad está configurada con los valores correctos.
- Asegúrate de que el perfil de aprovisionamiento se ha instalado en la máquina de desarrollo y de que el archivo Info.plist de la aplicación usa un identificador de lote idéntico a tu identificador de aplicación.
- Asegúrate de que el archivo Entitlements.plist de la aplicación tenga habilitados los derechos correctos.
- Asegúrate de que las claves de privacidad necesarias estén establecidas en Info.plist.
- Asegúrate de que la aplicación consume el archivo Entitlements.plist.