Partager via


Droits iOS

Sur iOS, les applications .NET Multi-Platform App UI (.NET MAUI) s’exécutent dans un bac à sable qui fournit un ensemble de règles qui limitent l’accès entre l’application et les ressources système ou les données utilisateur. Des droits sont utilisés pour demander au système d’augmenter le bac à sable afin d’ajouter des fonctionnalités supplémentaires à votre application, comme l’intégration à Siri. Tous les droits utilisés par votre application doivent être spécifiés dans le fichier Entitlements.plist de l’application. Pour plus d’informations sur les droits, consultez Entitlements sur developer.apple.com.

Outre la spécification des droits, le fichier Entitlements.plist sert à coder la signature de l’application. Lors de la signature du code de votre application, le fichier des droits d’utilisation est combiné avec les informations de votre compte de développeur Apple et d’autres informations de projet pour appliquer un ensemble final de droits à votre application.

Les droits sont étroitement liés au concept des fonctionnalités. Ils demandent tous deux l’extension du bac à sable dans lequel votre application s’exécute, pour lui octroyer des fonctionnalités supplémentaires. Les droits sont généralement ajoutés lors du développement de votre application, tandis que les fonctionnalités le sont généralement lors de la signature de code de votre application pour la distribution. Toutefois, lorsque l’attribution automatique est activée, l’ajout de certains droits à votre application met également à jour les fonctionnalités de votre application dans son profil d’approvisionnement. Pour plus d’informations, consultez Ajouter des fonctionnalités avec Visual Studio.

Important

Un fichier Entitlements.plist n’est pas lié à un compte de développeur Apple. Par conséquent, lors de la création d’un profil d’approvisionnement pour votre application, vous devez vous assurer que les droits utilisés par votre application sont également spécifiés en tant que fonctionnalités dans son profil d’approvisionnement. Pour plus d’informations, consultez Fonctionnalités.

Ajouter un fichier Entitlements.plist

Pour ajouter un nouveau fichier de droits à votre projet d’application .NET MAUI, ajoutez un nouveau fichier XML nommé Entitlements.plist au dossier Platforms\iOS de votre projet d’application. Ajoutez ensuite le code XML suivant au fichier :

<?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>

Définir des droits

Les droits peuvent être configurés dans Visual Studio en double-cliquant sur le fichier Entitlements.plist pour l’ouvrir dans l’éditeur de droits :

  1. Dans Explorateur de solutions, double-cliquez sur le fichier Entitlements.plist à partir du dossier Platforms > iOS de votre projet d’application .NET MAUI pour l’ouvrir dans l’éditeur de droits.

  2. Dans l’éditeur de droits, sélectionnez et configurez les droits requis par votre application :

    Éditeur de droits iOS Visual Studio.

  3. Enregistrez les modifications apportées à votre fichier Entitlements.plist pour ajouter les paires clé/valeur de droit au fichier.

Vous devrez peut-être également définir des clés de confidentialité dans Info.plist pour certains droits.

Consommer des droits

Une application iOS .NET MAUI doit être configurée dans Visual Studio pour consommer les droits définis dans le fichier Entitlements.plist :

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur votre projet d’application .NET MAUI et sélectionnez Propriétés. Accédez ensuite à l’onglet iOS > Signature de bundle.

  2. Dans les paramètres Signature de bundle, cliquez sur le bouton Parcourir... du champ Droits personnalisés.

  3. Dans la boîte de dialogue Droits personnalisés, accédez au dossier contenant votre fichier Entitlements.plist, sélectionnez le fichier, puis cliquez sur le bouton Ouvrir.

  4. Dans les propriétés du projet, le champ Droits personnalisés est renseigné avec votre fichier de droits :

    Champ de droits personnalisés Visual Studio défini.

  5. Fermez les propriétés du projet.

Remarque

Visual Studio définit le champ de droits personnalisés pour les builds de débogage et de mise en production.


Lorsque l’attribution automatique est activée, un sous-ensemble de droits est également ajouté au profil d’approvisionnement de votre application en tant que fonctionnalités. Pour plus d’informations, consultez Ajouter des fonctionnalités avec Visual Studio.

Référence de clé

Les paires clé/valeur de droits sont répertoriées ci-dessous pour référence. Dans Visual Studio, elles peuvent être ajoutées en modifiant le fichier Entitlements.plist en tant que fichier XML. Dans Visual Studio Code, elles peuvent être ajoutées en modifiant le code XML dans le fichier Entitlements.plist.

Accéder aux informations WiFi

Ce droit d’accès aux informations WiFi permet à votre application d’obtenir des informations sur le réseau WiFi actuellement connecté.

Le droit est défini en utilisant la clé com.apple.developer.networking.wifi-info, de type Boolean :

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

Pour plus d’informations, consultez Access WiFi Information Entitlement sur developer.apple.com.

Attestation de l’application

Avec le droit d’attestation de l’application, vous pouvez générer une clé de chiffrement spéciale sur votre appareil et l’utiliser pour valider l’intégrité de votre application avant qu’un serveur ne fournisse l’accès aux données sensibles.

Le droit est défini en utilisant la clé com.apple.developer.devicecheck.appattest-environment, de type String :

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

Pour plus d’informations, consultez App Attest Entitlement sur developer.apple.com.

Groupes d’applications

Le droit de groupes d’applications permet à votre application d’accéder aux conteneurs de groupe partagés entre plusieurs applications associées, ainsi que d’effectuer une communication inter-processus entre les applications.

Le droit d’utilisation est défini en utilisant la clé com.apple.security.application-groups, de type Array de String :

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

Pour plus d’informations, consultez App Groups Entitlement sur developer.apple.com.

Apple Pay

Le droit Apple Pay permet aux utilisateurs de payer facilement et en toute sécurité pour des marchandises et des services comme dans des épiceries, pour des vêtements, des tickets et des réservations à l’aide d’informations de paiement stockées sur leur appareil.

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.in-app-payments, de type Array de String :

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

Pour plus d’informations, consultez Merchant IDs Entitlement sur developer.apple.com.

Domaines associés

Le droit de domaines associés permet à votre application d’être associée à des domaines spécifiques pour des services spécifiques, tels que l’accès à Safari, les mots de passe enregistrés et la continuité d’activité.

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.associated-domains, de type Array de String :

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

Pour plus d’informations, consultez Associated Domains Entitlement sur developer.apple.com.

Fournisseur d’informations d’identification de remplissage automatique

Le droit de fournisseur d’informations d’identification de remplissage automatique permet à une application, avec l’autorisation de l’utilisateur, de fournir des noms d’utilisateur et des mots de passe pour le remplissage automatique dans l’application et Safari.

Le droit est défini en utilisant la clé com.apple.developer.authentication-services.autofill-credential-provider, de type Boolean :

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

Pour plus d’informations, consultez AutoFill Credential Provider Entitlement sur developer.apple.com.

ClassKit

Le droit ClassKit permet à votre application de partager en privé et en toute sécurité les progrès des étudiants avec les enseignants sur les activités affectées, telles que la lecture d’un chapitre dans un livre ou la réponse à un questionnaire, dans des environnements gérés par l’établissement scolaire.

Le droit est défini en utilisant la clé com.apple.developer.ClassKit-environment, de type String :

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

Pour plus d’informations, consultez ClassKit Environment Entitlement sur developer.apple.com.

Communiquer avec les pilotes

Le droit de communication avec les pilotes permet une communication entre une application et des pilotes DriverKit.

Le droit est défini en utilisant la clé com.apple.developer.driverkit.communicates-with-drivers, de type Boolean :

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

Pour plus d’informations, consultez Communicates with Drivers sur developer.apple.com.

Notifications de communication

Le droit de notifications de communication permet à une application d’envoyer des notifications de communication entre une personne et une autre ou plusieurs.

Le droit est défini en utilisant la clé com.apple.developer.usernotifications.communication, de type Boolean :

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

Pour plus d’informations, consultez Request Notification Service Entitlement sur developer.apple.com.

Protection des données

Le droit de protection des données permet à votre application d’utiliser le chiffrement intégré sur les appareils pris en charge. Lorsque vous spécifiez un fichier comme protégé, le système stocke le fichier dans un format chiffré.

Le droit est défini en utilisant la clé com.apple.developer.default-data-protection, de type String :

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

Pour plus d’informations, consultez Data Protection Entitlement sur developer.apple.com.

Adressage virtuel étendu

Le droit d’adressage virtuel étendu vous permet d’utiliser davantage d’espace d’adressage dans votre application.

Le droit est défini en utilisant la clé com.apple.developer.kernel.extended-virtual-addressing, de type Boolean :

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

Pour plus d’informations, consultez Extended Virtual Addressing Entitlement sur developer.apple.com.

Contrôles familiaux

Le droit de contrôles familiaux active les contrôles parentaux dans votre application, en accordant l’accès aux infrastructures des paramètres managés et de l’activité des appareils dans l’API ScreenTime. L’utilisation des contrôles familiaux requiert le partage familial pour l’inscription des utilisateurs. Cela empêche la suppression de votre application et active les filtres de contenu sur appareil des extensions réseau.

Le droit est défini en utilisant la clé com.apple.developer.family-controls, de type Boolean :

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

Pour plus d’informations, consultez Family Controls Entitlement sur developer.apple.com.

Mode de test FileProvider

Le droit de mode de test FileProvider active un mode de test qui offre à l’extension FileProvider un meilleur contrôle sur le comportement du système lors du test.

Le droit est défini en utilisant la clé com.apple.developer.fileprovider.testing-mode, de type Boolean :

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

Pour plus d’informations, consultez FileProvider Testing Mode Entitlement sur developer.apple.com.

Polices

Le droit de polices permet à votre application, avec l’autorisation de l’utilisateur, d’installer et d’utiliser des polices personnalisées.

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.user-fonts, de type Array de String :

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

Pour plus d’informations, consultez Configuring custom fonts sur developer.apple.com.

Activités de groupe

Le droit d’activités de groupe permet à une application de communiquer avec la même application sur un ou plusieurs autres appareils, afin de créer une activité de groupe pendant un appel FaceTime. Les activités de groupe sur FaceTime permettent aux utilisateurs de regarder la vidéo ensemble, d’écouter de la musique ensemble ou d’effectuer une autre activité synchrone.

Le droit est défini en utilisant la clé com.apple.developer.group-session, de type Boolean :

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

Pour plus d’informations, consultez Group Activities Entitlement sur developer.apple.com.

HealthKit

Le droit HealthKit permet à votre application d’accéder, avec l’autorisation de l’utilisateur, aux informations de santé personnelles.

Le droit est défini en utilisant la clé com.apple.developer.healthkit, de type Boolean :

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

Pour plus d’informations, consultez HealthKit Entitlement sur developer.apple.com.

HomeKit

Le droit HomeKit permet à votre application d’interagir avec les accessoires HomeKit.

Le droit est défini en utilisant la clé com.apple.developer.homekit, de type Boolean :

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

Pour plus d’informations, consultez HomeKit Entitlement sur developer.apple.com.

Configuration de point d’accès

Le droit de configuration de point d’accès permet à votre application de configurer des réseaux WiFi.

Le droit est défini en utilisant la clé com.apple.developer.networking.HotspotConfiguration, de type Boolean :

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

Pour plus d’informations, consultez Hotspot Configuration Entitlement sur developer.apple.com.

iCloud

Le droit iCloud permet à votre application de stocker des données dans le cloud, ce qui permet aux utilisateurs de partager leurs données sur plusieurs appareils.

Le droit est défini à l’aide de la clé com.apple.developer.icloud-container-development-container-identifiers, de type Array de String, puis de clés supplémentaires qui représentent l’identificateur de conteneur :

<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>

Les espaces réservés $(AppIdentifierPrefix) et $(CFBundleIdentifier) seront remplacés par les valeurs appropriées au moment de la création.

Pour plus d’informations, consultez iCloud Container Identifiers Entitlement sur developer.apple.com.

Augmentation de la limite de mémoire

Le droit d’augmentation de la limite de mémoire permet à votre application de dépasser la limite de mémoire d’application par défaut sur les appareils pris en charge.

Le droit est défini en utilisant la clé com.apple.developer.kernel.increased-memory-limit, de type Boolean :

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

Pour plus d’informations, consultez Increased Memory Limit Entitlement sur developer.apple.com.

Audio entre applications

Le droit d’audio entre applications permet à votre application d’envoyer et de recevoir de l’audio vers/depuis d’autres applications pour lesquelles l’audio entre applications est activé.

Le droit est défini en utilisant la clé inter-app-audio, de type Boolean :

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

Pour plus d’informations, consultez Inter-App Audio Entitlement sur developer.apple.com.

Important

Ce droit est déconseillé dans iOS 13 et n’est pas disponible lors de l’exécution d’applications iPads dans macOS.

Trousseau

Le droit de trousseau permet à plusieurs applications écrites par la même équipe de partager des mots de passe.

Le droit d’utilisation est défini en utilisant la clé keychain-access-groups, de type Array de String :

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

Pour plus d’informations, consultez Keychain Access Entitlement sur developer.apple.com.

Domaines associés managés par GAM

Le droit de domaines associés managés par la gestion des applications mobiles (GAM) permet à GAM de compléter les domaines associés inclus dans votre application avec des valeurs telles que les noms de serveurs uniques pour un environnement.

Le droit est défini en utilisant la clé com.apple.developer.associated-domains.mdm-managed, de type Boolean :

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

Multipath

Le droit Multipath permet à votre application d’utiliser des protocoles multipath tels que Multipath TCP, qui permettent de transmettre en toute transparence le trafic d’une interface à une autre.

Le droit est défini en utilisant la clé com.apple.developer.networking.multipath, de type Boolean :

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

Pour plus d’informations, consultez Multipath Entitlement sur developer.apple.com.

Lecteur de balise de communication en champ proche

Le droit de lecteur de balise de communication en champ proche permet à une application de lire les balises NFC (Near Field Communication) NDEF (NFC Data Exchanged Format).

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.nfc.readersession.formats, de type Array de String :

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

Pour plus d’informations, consultez Near Field Communication Tag Reader Session Formats Entitlement sur developer.apple.com.

Extensions réseau

Le droit d’extensions réseau vous permet de créer des extensions d’application qui étendent et personnalisent les fonctionnalités réseau de votre appareil.

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.networking.networkextension, de type Array de String :

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

Pour plus d’informations, consultez Network Extensions Entitlement sur developer.apple.com.

VPN personnel

Le droit de VPN personnel permet à votre application d’utiliser des connexions VPN personnalisées.

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.networking.vpn.api, de type Array de String :

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

Pour plus d’informations, consultez Personal VPN Entitlement sur developer.apple.com.

Notifications push

Le droit aux notifications push permet à votre application de recevoir des notifications push.

Le droit est défini en utilisant la clé aps-environment, de type String :

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

Pour plus d’informations, consultez APS Environment Entitlement sur developer.apple.com.

Appuyer pour parler

Le droit d’appuyer pour parler permet à votre application de signaler des canaux Appuyer pour parler au système afin qu’elle puisse gérer la transmission et la réception d’audio en arrière-plan.

Le droit est défini en utilisant la clé com.apple.developer.push-to-talk, de type Boolean :

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

Pour plus d’informations, consultez Push to Talk Entitlement sur developer.apple.com.

Partagé avec vous

Le droit de partage avec vous permet à une application de revendiquer des liens partagés dans des conversations Messages et pour qu’ils soient exposés via l’infrastructure Partagé avec vous.

Le droit est défini en utilisant la clé com.apple.developer.shared-with-you, de type Boolean :

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

Se connecter avec Apple

Le droit de connexion avec Apple permet aux utilisateurs de s’authentifier avec leur ID Apple.

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.applesignin, de type Array de String :

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

Pour obtenir plus d’informations, consultez Connectez-vous avec le droit Apple sur le site developer.apple.com.

Siri

Le droit Siri permet à votre application de gérer les demandes Siri.

Le droit est défini en utilisant la clé com.apple.developer.siri, de type Boolean :

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

Pour plus d’informations, consultez Siri Entitlement sur developer.apple.com.

Notifications sensibles au temps

Le droit de notifications sensibles au temps permet à une application de gérer les notifications sensibles au temps. Les notifications sensibles au temps fournissent des informations qui demandent une attention immédiate et appellent directement l’individu à prendre des mesures au moment où la notification est reçue. Les alertes sensibles au temps sont toujours remises immédiatement, sont exposées au-dessus d’autres notifications et sont autorisées à passer devant Focus et Ne pas déranger.

Le droit est défini en utilisant la clé com.apple.developer.usernotifications.time-sensitive, de type Boolean :

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

Portefeuille

Le droit de portefeuille permet à votre application de gérer les passes, tickets, cartes-cadeaux et cartes de fidélité. Il prend en charge un large éventail de formats de code barres.

Le droit d’utilisation est défini en utilisant la clé com.apple.developer.pass-type-identifiers, de type Array de String :

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

Dans cet exemple, votre application autorise tous les types de passes. Pour limiter votre application et qu’elle n’accepte qu’une partie des types de passes d’équipe, définissez le valeur de chaîne sur $(TeamIdentifierPrefix)pass.$(CFBundleIdentifier), où pass.$(CFBundleIdentifier) correspond à l’ID de passe.

Pour plus d’informations, consultez Pass Type IDs Entitlement sur developer.apple.com.

WeatherKit

Le droit WeatherKit permet à une application de recevoir et de traiter des informations météorologiques actuelles et prévues.

Le droit est défini en utilisant la clé com.apple.developer.weatherkit, de type Boolean :

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

Pour plus d’informations, consultez WeatherKit Entitlement sur developer.apple.com.

Configuration d’accessoire sans fil

Le droit de configuration d’accessoire sans fil permet à votre application de configurer des accessoires WiFi.

Le droit est défini en utilisant la clé com.apple.external-accessory.wireless-configuration, de type Boolean :

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

Pour plus d’informations, consultez Wireless Accessory Configuration Entitlement sur developer.apple.com.