Compartir vía


Derechos de iOS

En iOS, 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 la aplicación y los recursos del sistema o los datos de usuario. Los derechos se usan para solicitar que el sistema expanda el espacio aislado para proporcionar a la aplicación capacidades adicionales, como la integración con Siri. Los derechos usados por la aplicación deben especificarse en el archivo Entitlements.plist de la aplicación. Para obtener más información sobre los derechos, consulta Entitlements en developer.apple.com.

El archivo Entitlements.plist se usa para especificar derechos y para firmar el código de tu aplicación. Al firmar el código de tu la aplicación, el archivo de "entitlements" se combina con información de la cuenta de desarrollador de Apple y otra información del proyecto para aplicar un conjunto final de derechos a la aplicación.

Los derechos están estrechamente relacionados con el concepto de funcionalidades. 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. Pero cuando el aprovisionamiento automático está habilitado, agregar determinados derechos a la aplicación también actualizará las funcionalidades de la aplicación en su perfil de aprovisionamiento. Para obtener más información, consulta Adición de funcionalidades con Visual Studio.

Importante

Un archivo Entitlements.plist no está vinculado a una cuenta de desarrollador de Apple. Por lo tanto, al crear un perfil de aprovisionamiento para la aplicación, debes asegurarte de que los derechos usados por la aplicación también se especifican como funcionalidades en su perfil de aprovisionamiento. Para obtener más información, consulta Funcionalidades.

Agregar un archivo Entitlements.plist

Para agregar un nuevo archivo de "entitlements" al proyecto de aplicación .NET MAUI, agrega un nuevo archivo XML denominado Entitlements.plist a la carpeta Platforms\iOS de tu proyecto de aplicación. Luego agrega el siguiente XML al archivo:

<?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>
</dict>
</plist>

Configuración de derechos

Los derechos se pueden configurar en Visual Studio haciendo doble clic en el archivo Entitlements.plist para abrirlo en el editor de derechos.

  1. En Explorador de soluciones, haz doble clic en el archivo Entitlements.plist de la carpeta Platforms > iOS del proyecto de la aplicación de .NET MAUI para abrirlo en el editor de derechos.

  2. En el editor de derechos, selecciona y configura los derechos necesarios para tu aplicación:

    Editor de derechos de Visual Studio iOS.

  3. Guarda los cambios en el archivo Entitlements.plist para agregar los pares clave-valor de derechos al archivo.

También puede ser necesario establecer claves de privacidad en Info.plist, para determinados derechos.

Consumo de derechos

Se debe configurar una aplicación .NET MAUI iOS en Visual Studio para consumir los derechos definidos en el archivo Entitlements.plist:

  1. En Explorador de soluciones, haz clic con el botón derecho en el proyecto de aplicación .NET MAUI y selecciona Propiedades. Después, ve a la pestaña iOS > Firma de lote.

  2. En la configuración Firma de lote, haz clic en el botón Examinar... del campo Derechos personalizados.

  3. En el cuadro de diálogo Derechos personalizados, ve a la carpeta que contiene el archivo Entitlements.plist, selecciona el archivo y haz clic en el botón Abrir.

  4. En las propiedades del proyecto, el campo Derechos personalizados se rellenará con el archivo de "entitlements":

    Conjunto de campos de derechos personalizados de Visual Studio.

  5. Cierra las propiedades de proyecto.

Nota:

Visual Studio establecerá el campo derechos personalizados para las compilaciones de depuración y versión.


Cuando se habilita el aprovisionamiento automático, también se agregará un subconjunto de derechos al perfil de aprovisionamiento de la aplicación como funcionalidades. Para obtener más información, consulta Adición de funcionalidades con Visual Studio.

Referencia de claves

Los pares clave-valor de derechos se enumeran a continuación como referencia. En Visual Studio se pueden agregar editando el archivo Entitlements.plist como un archivo XML. En Visual Studio Code se pueden agregar editando el XML en el archivo Entitlements.plist.

Acceso a la información de WiFi

Este derecho al acceso a la información de WiFi permite a la aplicación obtener información sobre la red WiFi conectada actualmente.

El derecho se define mediante la clave com.apple.developer.networking.wifi-info, de tipo Boolean:

<key>com.apple.developer.networking.wifi-info</key>
<true/>

Para obtener más información, consulta Access WiFi Information Entitlement en developer.apple.com.

Atestación de aplicaciones

Con el derecho a la atestación de aplicaciones, puede generar una clave criptográfica especial en el dispositivo y usarla para validar la integridad de la aplicación antes de que un servidor proporcione acceso a información confidencial.

El derecho se define mediante la clave com.apple.developer.devicecheck.appattest-environment, de tipo String:

<key>com.apple.developer.devicecheck.appattest-environment</key>
<string>development</string>

Para obtener más información, consulta App Attest Environment en developer.apple.com.

Grupos de aplicaciones

El derecho a los grupos de aplicaciones permite a la aplicación acceder a los contenedores de grupos compartidos entre varias aplicaciones relacionadas, así como realizar la comunicación entre procesos entre las aplicaciones.

El derecho se define mediante la clave com.apple.security.application-groups, de tipo Array de String:

<key>com.apple.security.application-groups</key>
<array>
  <string>group.MyAppGroups</string>
</array>

Para obtener más información, consulta App Groups Entitlement en developer.apple.com.

Apple Pay

El derecho a Apple Pay permite a los usuarios pagar de forma sencilla y segura el bien físico y los servicios, como comestibles, ropa, billetes y reservas mediante la información de pago almacenada en su dispositivo.

El derecho se define mediante la clave com.apple.developer.in-app-payments, de tipo Array de String:

<key>com.apple.developer.in-app-payments</key>
<array>
  <string>merchant.your.merchantid</string>
</array>

Para obtener más información, consulta Merchant IDs Entitlement en developer.apple.com.

Dominios asociados

Los derechos a dominios asociados permiten que la aplicación esté asociada a dominios específicos para servicios específicos, como el acceso a Safari, las contraseñas guardadas y la continuación de la actividad.

El derecho se define mediante la clave com.apple.developer.associated-domains, de tipo Array de String:

<key>com.apple.developer.associated-domains</key>
<array>
  <string>webcredentials:example.com</string>
</array>

Para obtener más información, consulta Associated Domains Entitlement en developer.apple.com.

Proveedor de credenciales de autorrellenar

El derecho al proveedor de credenciales de autorrellenar permite a una aplicación, con permiso de usuario, proporcionar nombres de usuario y contraseñas para autorrellenar en la aplicación y Safari.

El derecho se define mediante la clave com.apple.developer.authentication-services.autofill-credential-provider, de tipo Boolean:

<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
<true/>

Para obtener más información, consulta AutoFill Credential Provider Entitlement en developer.apple.com.

ClassKit

El derecho a ClassKit permite a la aplicación compartir de forma privada y segura el progreso de los estudiantes con profesores en actividades asignadas, como leer un capítulo de un libro o realizar un cuestionario, en entornos administrados por la escuela.

El derecho se define mediante la clave com.apple.developer.ClassKit-environment, de tipo String:

<key>com.apple.developer.ClassKit-environment</key>
<string>development</string>

Para obtener más información, consulta ClassKit Environment Entitlement en developer.apple.com.

Comunicación con controladores

La comunicación con los derechos de los controladores permite la comunicación entre una aplicación y los controladores DriverKit.

El derecho se define mediante la clave com.apple.developer.driverkit.communicates-with-drivers, de tipo Boolean:

<key>com.apple.developer.driverkit.communicates-with-drivers</key>
<true/>

Para obtener más información, consulta Communicates with Drivers en developer.apple.com.

Notificaciones de comunicación

El derecho a las notificaciones de comunicación permite a una aplicación enviar notificaciones de comunicación de una persona a una persona o a varias personas.

El derecho se define mediante la clave com.apple.developer.usernotifications.communication, de tipo Boolean:

<key>com.apple.developer.usernotifications.communication</key>
<true/>

Para obtener más información, consulta Request Notification Service Entitlement en developer.apple.com.

Protección de los datos

El derecho de protección de datos permite a la aplicación usar el cifrado integrado en dispositivos compatibles. Al especificar un archivo como protegido, el sistema almacenará el archivo en un formato cifrado.

El derecho se define mediante la clave com.apple.developer.default-data-protection, de tipo String:

<key>com.apple.developer.default-data-protection</key>
<string>NSFileProtectionComplete</string>

Para obtener más información, consulta Data Protection Entitlement en developer.apple.com.

Direccionamiento virtual extendido

El derecho de direccionamiento virtual extendido permite usar más espacio de direcciones en tu aplicación.

El derecho se define mediante la clave com.apple.developer.kernel.extended-virtual-addressing, de tipo Boolean:

<key>com.apple.developer.kernel.extended-virtual-addressing</key>
<true/>

Para obtener más información, consulta Extended Virtual Addressing Entitlement en developer.apple.com.

Controles familiares

El derecho de controles familiares habilita los controles parentales de la aplicación, otorgándote acceso a los marcos de Configuración y actividad de dispositivos administrados en la API de ScreenTime. El uso de controles familiares requiere el uso compartido de la familia para la inscripción de usuarios. Impide la eliminación de la aplicación y habilita los filtros de contenido en el dispositivo de las extensiones de red.

El derecho se define mediante la clave com.apple.developer.family-controls, de tipo Boolean:

<key>com.apple.developer.family-controls</key>
<true/>

Para obtener más información, consulta Family Controls Entitlement en developer.apple.com.

Modo de prueba fileProvider

El derecho al modo de prueba FileProvider habilita un modo de prueba que proporciona a la extensión del proveedor de archivos más control sobre el comportamiento del sistema durante las pruebas.

El derecho se define mediante la clave com.apple.developer.fileprovider.testing-mode, de tipo Boolean:

<key>com.apple.developer.fileprovider.testing-mode</key>
<true/>

Para obtener más información, consulta FileProvider Testing Mode Entitlement en developer.apple.com.

Fuentes

El derecho de fuentes permite a tu aplicación, con permiso de usuario, instalar y usar fuentes personalizadas.

El derecho se define mediante la clave com.apple.developer.user-fonts, de tipo Array de String:

<key>com.apple.developer.user-fonts</key>
<array>
  <string>system-installation</string>
</array>

Para obtener más información, consulta Configuring custom fonts en developer.apple.com.

Actividades de grupo

El derecho a las actividades de grupo permite que una aplicación se comunique con la misma aplicación en uno o varios otros dispositivos, para crear una actividad de grupo en el ámbito de una llamada FaceTime. Las actividades de grupo en FaceTime permiten a los usuarios ver vídeos juntos, escuchar música juntos o realizar cualquier otra actividad sincrónica.

El derecho se define mediante la clave com.apple.developer.group-session, de tipo Boolean:

<key>com.apple.developer.group-session</key>
<true/>

Para obtener más información, consulta Group Activities Entitlement en developer.apple.com.

HealthKit

El derecho HealthKit permite a la aplicación acceder, con permiso de usuario, a información sobre salud personal.

El derecho se define mediante la clave com.apple.developer.healthkit, de tipo Boolean:

<key>com.apple.developer.healthkit</key>
<true/>

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

HomeKit

El derecho HomeKit permite que la aplicación interactúe con los accesorios de HomeKit.

El derecho se define mediante la clave com.apple.developer.homekit, de tipo Boolean:

<key>com.apple.developer.homekit</key>
<true/>

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

Configuración de la zona activa

El derecho de configuración de zonas activas permite a tu aplicación configurar redes WiFi.

El derecho se define mediante la clave com.apple.developer.networking.HotspotConfiguration, de tipo Boolean:

<key>com.apple.developer.networking.HotspotConfiguration</key>
<true/>

Para obtener más información, consulta Hotspot Configuration Entitlement en developer.apple.com.

iCloud

El derecho de iCloud permite a la aplicación almacenar datos en la nube, lo que permite a los usuarios compartir sus datos en varios dispositivos.

El derecho se define mediante la clave com.apple.developer.icloud-container-development-container-identifiers, del tipo Array de String y luego claves adicionales que representan el identificador del contenedor:

<key>com.apple.developer.icloud-container-identifiers</key>
<array>
  <string>iCloud.com.companyname.test</string>
</array>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>

Los marcadores de posición $(AppIdentifierPrefix) y $(CFBundleIdentifier) se sustituirán por los valores correctos en el tiempo de compilación.

Para obtener más información, consulta iCloud Container Identifiers Entitlement en developer.apple.com.

Incremento del límite de memoria

El derecho de incremento del límite de memoria permite que la aplicación exceda su límite de memoria predeterminado en los dispositivos compatibles.

El derecho se define mediante la clave com.apple.developer.kernel.increased-memory-limit, de tipo Boolean:

<key>com.apple.developer.kernel.increased-memory-limit</key>
<true/>

Para obtener más información, consulta Increased Memory Limit Entitlement en developer.apple.com.

Audio entre aplicaciones

El derecho a audio entre aplicaciones permite que la aplicación envíe y reciba audio hacia otras aplicaciones que tengan habilitado audio entre aplicaciones.

El derecho se define mediante la clave inter-app-audio, de tipo Boolean:

<key>inter-app-audio</key>
<true/>

Para obtener más información, consulta Inter-App Audio Entitlement en developer.apple.com.

Importante

Este derecho está en desuso en iOS 13 y no está disponible al ejecutar aplicaciones de iPads en macOS.

Cadena de claves

El derecho al llavero permite que varias aplicaciones escritas por el mismo equipo compartan contraseñas.

El derecho se define mediante la clave keychain-access-groups, de tipo Array de String:

<key>keychain-access-groups</key>
<array>
  <string>$(AppIdentifierPrefix)com.companyname.test</string>
</array>

Para obtener más información, consulta Keychain Access Groups entitlement en developer.apple.com.

Dominios asociados administrados por MDM

El derecho a dominios asociados administrados por la administración de desarrollo móvil (MDM) permite a MDM complementar los dominios asociados que se incluyen con la aplicación con valores como los nombres de servidor que son únicos para un entorno.

El derecho se define mediante la clave com.apple.developer.associated-domains.mdm-managed, de tipo Boolean:

<key>com.apple.developer.associated-domains.mdm-managed</key>
<true/>

Múltiples rutas

El derecho a múltiples rutas permite a la aplicación usar protocolos de múltiples rutas, como TCP de múltiples rutas, que entregarán sin problemas el tráfico de una interfaz a otra.

El derecho se define mediante la clave com.apple.developer.networking.multipath, de tipo Boolean:

<key>com.apple.developer.networking.multipath</key>
<true/>

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

Lector de etiquetas de comunicación de campo cercano

El derecho al lector de etiquetas de comunicación de campo cercano permite a una aplicación leer etiquetas de comunicación de campo cercano (NFC) y formato de intercambio de datos NFC (NDEF).

El derecho se define mediante la clave com.apple.developer.nfc.readersession.formats, de tipo Array de String:

<key>com.apple.developer.nfc.readersession.formats</key>
<array>
  <string>NDEF</string>
  <string>TAG</string>
</array>

Para obtener más información, consulta Near Field Communication Tag Reader Session Formats Entitlements en developer.apple.com.

Extensiones de red

El derecho a extensiones de red permite crear extensiones de aplicación que amplían y personalizan las funcionalidades de red del dispositivo.

El derecho se define mediante la clave com.apple.developer.networking.networkextension, de tipo Array de String:

<key>com.apple.developer.networking.networkextension</key>
<array>
  <string>content-filter-provider</string>
</array>

Para obtener más información, consulta Network Extensions Entitlement en developer.apple.com.

VPN personal

El derecho a VPN personal permite a la aplicación usar conexiones VPN personalizadas.

El derecho se define mediante la clave com.apple.developer.networking.vpn.api, de tipo Array de String:

<key>com.apple.developer.networking.vpn.api</key>
<array>
  <string>allow-vpn</string>
</array>

Para obtener más información, consulta Personal VPN Entitlement en developer.apple.com.

Notificaciones de inserción

El derecho a las notificaciones push permite a la aplicación recibir notificaciones push.

El derecho se define mediante la clave aps-environment, de tipo String:

<key>aps-environment</key>
<string>development</string>

Para obtener más información, consulta APS Environment Entitlement en developer.apple.com.

Pulsar para hablar

El derecho a pulsar para hablar permite a la aplicación notificar los canales Pulsar para hablar al sistema para que pueda controlar la transmisión y recepción de audio en segundo plano.

El derecho se define mediante la clave com.apple.developer.push-to-talk, de tipo Boolean:

<key>com.apple.developer.push-to-talk</key>
<true/>

Para obtener más información, consulta Push to Talk Entitlement en developer.apple.com.

Compartido con usted

El derecho de compartido con usted permite a una aplicación reclamar vínculos compartidos en conversaciones de mensajes y para que se muestren a él a través del marco Compartido con usted.

El derecho se define mediante la clave com.apple.developer.shared-with-you, de tipo Boolean:

<key>com.apple.developer.shared-with-you</key>
<true/>

Inicio de sesión con Apple

El derecho de inicio de sesión de Apple permite a los usuarios autenticarse con su ID de Apple.

El derecho se define mediante la clave com.apple.developer.applesignin, de tipo Array de String:

<key>com.apple.developer.applesignin</key>
<array>
  <string>Default</string>
</array>

Para obtener más información, consulta Sign in with Apple Entitlement en developer.apple.com.

Siri

El derecho a Siri permite a la aplicación controlar las solicitudes de Siri.

El derecho se define mediante la clave com.apple.developer.siri, de tipo Boolean:

<key>com.apple.developer.siri</key>
<true/>

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

Notificaciones urgentes

El derecho a notificaciones urgentes permite a una aplicación controlar las notificaciones urgentes. Las notificaciones urgentes proporcionan información que exige atención inmediata y llama directamente a la persona para tomar medidas el momento en que se recibe la notificación. Las alertas urgentes siempre se entregan inmediatamente, se muestran encima de otras notificaciones y se les permite interrumpir el foco y no molestar.

El derecho se define mediante la clave com.apple.developer.usernotifications.time-sensitive, de tipo Boolean:

<key>com.apple.developer.usernotifications.time-sensitive</key>
<true/>

Cartera

El derecho a la cartera permite a la aplicación administrar pases, billetes, tarjetas de regalo y tarjetas de fidelidad. Admite una variedad de formatos de código de barras.

El derecho se define mediante la clave com.apple.developer.pass-type-identifiers, de tipo Array de String:

<key>com.apple.developer.pass-type-identifiers</key>
<array>
  <string>$(TeamIdentifierPrefix)*</string>
</array>

De esta manera, la aplicación admitirá todos los tipos de pases. Para restringir la aplicación y admitir únicamente un conjunto de tipos de pase de equipo, establece el valor de la cadena en $(TeamIdentifierPrefix)pass.$(CFBundleIdentifier) donde pass.$(CFBundleIdentifier) es el ID de Pase.

Para obtener más información, consulta Pass Type IDs Entitlement en developer.apple.com

WeatherKit

El derecho a WeatherKit permite a una aplicación recibir y procesar información meteorológica actual y prevista.

El derecho se define mediante la clave com.apple.developer.weatherkit, de tipo Boolean:

<key>com.apple.developer.weatherkit</key>
<true/>

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

Configuración inalámbrica de accesorios

El derecho a la configuración inalámbrica de accesorios permite configurar accesorios WiFi en la aplicación.

El derecho se define mediante la clave com.apple.external-accessory.wireless-configuration, de tipo Boolean:

<key>com.apple.external-accessory.wireless-configuration</key>
<true/>

Para obtener más información, consulta Wireless Accessory Configuration Entitlement en developer.apple.com.