Utilisation des droits dans Xamarin.iOS
Les droits sont des fonctionnalités et des autorisations de sécurité particulières accordées aux applications qui présentent la configuration requise pour les utiliser.
Dans iOS, les applications s’exécutent dans un bac à sable (sandbox), qui fournit un ensemble de règles visant à limiter l’accès entre l’application et certaines ressources système ou données utilisateur. Utilisez des droits pour demander au système d’augmenter le bac à sable afin d’ajouter des fonctionnalités à votre application.
Pour étendre les fonctionnalités de votre application, ajoutez les droits appropriés dans le fichier Entitlements.plist de l’application. Seules certaines fonctionnalités peuvent être étendues. Celles-ci sont répertoriées dans le guide Utilisation des fonctionnalités et décrites ci-dessous. Les droits sont passés au système sous forme de paires clé-valeur. En règle générale, un seul droit est requis pour chaque fonctionnalité. Les clés et valeurs spécifiques sont décrites dans la section Informations de référence sur les clés de droits, plus loin dans ce guide. Visual Studio pour Mac et Visual Studio offrent une interface simple pour l’ajout de droits dans une application Xamarin.iOS à l’aide de l’éditeur Entitlements.plist. Ce guide présente l’éditeur Entitlements.plist et explique comment l’utiliser. Il fournit également des informations de référence sur l’ensemble des droits que vous pouvez ajouter à un projet iOS pour chaque fonctionnalité.
Droits et provisionnement
Le fichier Entitlements.plist est utilisé pour spécifier les droits et signer le bundle d’application.
Toutefois, un provisionnement supplémentaire est nécessaire pour garantir la signature correcte du code de l’application. Le profil de provisionnement utilisé doit contenir un ID d’application pour lequel la fonctionnalité requise est activée. Pour plus d’informations sur la procédure à suivre, consultez le guide Utilisation des fonctionnalités.
Important
Le fichier Entitlements.plist permet de renseigner plus facilement les propriétés appropriées pour une application utilisant des fonctionnalités, mais il ne permet pas de générer un profil d’approvisionnement, car il n’est pas lié à un compte de développeur Apple. Vous devez générer un profil de provisionnement à partir du portail des développeurs pour pouvoir déployer et distribuer l’application.
Définir des droits dans un projet Xamarin.iOS
En plus de sélectionner et configurer les services d’application nécessaires quand vous définissez l’ID d’application, vous devez configurer les droits dans le projet Xamarin.iOS en modifiant les fichiers Info.plist et Entitlements.plist.
Pour configurer les droits dans Visual Studio pour Mac, effectuez les étapes suivantes :
Dans le panneau Solution, double-cliquez sur le fichier Info.plist pour l’ouvrir.
Dans la section Identité, renseignez un nom pour l’application et entrez l’identificateur de bundle qui a été créé lorsque l’ID d’application a été défini :
Enregistrez les modifications apportées au fichier Info.plist.
Dans le panneau Solution, double-cliquez sur le fichier Entitlements.plist pour l’ouvrir pour modification :
Sélectionnez et configurez les droits requis pour l’application Xamarin.iOS afin qu’ils correspondent à la configuration définie au moment de la création de l’ID d’application.
Enregistrez les modifications apportées au fichier Entitlements.plist.
Ajout d’un nouveau fichier Entitlements.plist
Vous ajoutez les droits à une application à l’aide du fichier Entitlements.plist. Ce fichier est inclus dans les projets Xamarin.iOS par défaut, mais il n’est pas toujours présent dans les projets plus anciens.
Pour ajouter un fichier Entitlements.plist à votre projet Xamarin.iOS, effectuez les étapes suivantes :
Cliquez avec le bouton droit sur le fichier projet et accédez à Ajouter > un nouveau fichier... :
Dans la boîte de dialogue Nouveau fichier, sélectionnez liste de propriétés iOS > et nommez-la droits :
Informations de référence sur les clés de droits
Vous pouvez ajouter les clés de droits par le biais du panneau source de l’éditeur Entitlements.plist. Les clés requises sont normalement ajoutées quand vous utilisez l’éditeur Entitlements.plist, mais elles sont répertoriées ci-dessous pour référence.
Portefeuille
Description : Anciennement appelée Passbook, Wallet est une application qui stocke et gère les passes. Ces passes peuvent être des cartes bancaires, des cartes de magasin, des cartes d’embarquement ou des billets.
- Identificateur du type de passe
- Clés : com.apple.developer.pass-type-identifiers
- Chaîne :
$(TeamIdentifierPrefix)*
- Identificateur du type de passe
Remarques :
- Avec cette valeur de chaîne, votre application accepte tous les types de passes. Si vous souhaitez que votre application accepte uniquement une partie des types de passes d’équipe, définissez la chaîne à cette valeur :
$(TeamIdentifierPrefix)pass.$(CFBundleIdentifier)
Où pass.$(CFBundleIdentifier) est l’ID de passe qui a été créé plus haut
- Avec cette valeur de chaîne, votre application accepte tous les types de passes. Si vous souhaitez que votre application accepte uniquement une partie des types de passes d’équipe, définissez la chaîne à cette valeur :
iCloud
Description : iCloud offre aux utilisateurs d’appareil iOS un moyen simple et pratique de stocker leur contenu et de le partager entre plusieurs appareils. Avec iCloud, les développeurs peuvent fournir quatre types de stockage différents aux utilisateurs : le stockage Key-value iCloud, le stockage UIDocument, CoreData et l’utilisation directe de CloudKit pour le stockage des fichiers et répertoires. Pour plus d’informations, consultez le guide Présentation d’iCloud.
- Documents iCloud et CloudKit
- Clés : com.apple.developer.ubiquity-container-identifiers
- Chaîne :
$(TeamIdentifierPrefix)$(CFBundleIdentifier)
- Stockage Key-value iCloud
- Clé : com.apple.developer.ubiquity-kvstore-identifier
- Chaîne :
$(TeamIdentifierPrefix)$(CFBundleIdentifier)
- Documents iCloud et CloudKit
Remarques :
- La
$(TeamIdentifierPrefix)
chaîne peut se trouver en vous connectant à developer.apple.com et visitez le Résumé du compte > développeur du centre > de membres pour obtenir votre ID d’équipe (ou ID individuel pour les développeurs uniques). Il s’agit d’une chaîne composée de dix caractères (A93A5CM278, par exemple). - La chaîne
$(CFBundleIdentifier)
commence pariCloud
. Elle est définie au moment de la création du conteneur iCloud (voir les étapes décrites dans le guide Utilisation des fonctionnalités). - Les espaces réservés $
(TeamIdentifierPrefix)
et$(CFBundleIdentifier)
peuvent être utilisés. Ils sont remplacés par les valeurs correspondantes au moment de la génération.
- La
Important
Apple fournit des outils pour aider les développeurs à gérer correctement le Règlement général sur la protection des données (RGPD) de l’Union européenne.
App Groups
Description : Un App Group est un groupe qui permet à différentes applications (ou à une application et ses extensions) d’accéder à un emplacement partagé du stockage de fichiers.
- Clé : com.apple.security.application-groups
- Chaîne : group.$(CFBundleIdentifier)
Apple Pay
- Description : Apple Pay permet aux utilisateurs de payer des marchandises physiques à partir de leur appareil iOS.
- Clé : com.apple.developer.in-app-payments
- Chaîne : merchant.your.mechantid
Notifications Push
- Clé : aps-environment
- Chaîne :
development
ouproduction
Siri
- Description : SiriKit permet à une application iOS de fournir des services accessibles à Siri et à l’application Maps sur un appareil iOS à l’aide des extensions d’application, ainsi que des nouveaux frameworks Intents et Intents UI. Pour plus d’informations, consultez le guide Présentation de SiriKit.
- Clé : com.apple.developer.siri
VPN personnel
- Clé : com.apple.developer.networking.vpn.api
- Chaîne : allow-vpn
Keychain Sharing
- Description : Keychain Sharing permet aux développeurs d’application de partager les mots de passe qui sont stockés dans le trousseau de l’appareil avec d’autres applications développées par la même équipe. Vous pouvez limiter l’accès en passant à la chaîne un identificateur de groupe d’accès au trousseau.
- Clé : keychain-access-groups
- Chaîne : $(AppIdentifierPrefix) $(CFBundleIdentifier)
Inter-App Audio
- Description : Inter-App Audio permet aux développeurs de diffuser des flux audio en continu entre les applications.
- Clé : inter-app-audio
- Valeur booléenne : YES
Domaines associés
- Description : Associated Domains permet d’associer et de passer les domaines qui doivent être traités comme des liens universels. Vous pouvez implémenter des liens universels pour autoriser les liens profonds entre votre application et un site web. Vous devez fournir une entrée à chaque domaine pris en charge par votre application, en commençant chaque entrée par
applinks:
- Clé : com.apple.developer.associated-domains
- Chaîne : webcredentials:example.com
Protection des données
- Description : Data Protection permet d’utiliser le matériel de chiffrement intégré pour stocker les données sensibles contenues dans votre application dans un format chiffré. Par défaut, le niveau de protection est défini sur une protection complète (les fichiers sont accessibles uniquement quand l’appareil est déverrouillé).
- Clé : com.apple.developer.default-data-protection
- Chaîne : NSFileProtectionComplete
HomeKit
- Description : Le framework HomeKit offre une plateforme pour installer, configurer et gérer les appareils domotiques compatibles à partir d’un appareil iOS. Pour plus d’informations sur l’utilisation d’HomeKit, consultez le guide Présentation d’HomeKit.
- Clé : com.apple.developer.homekit
- Valeur booléenne : YES
HealthKit
- Description : Le framework HealthKit introduit dans iOS 8 fournit un stockage centralisé, coordonné et sécurisé pour les données de santé. Pour plus d’informations sur l’utilisation d’HealthKit, consultez le guide Présentation d’HealthKit.
- Clé : com.apple.developer.healthkit
- Valeur booléenne : YES
Configuration d’accessoires sans fil
- Description : L’utilisation de la configuration des accessoires sans fil permet à votre application de configurer des accessoires Wi-Fi MFi
- Clé : com.apple.external-accessory.wireless-configuration
- Valeur booléenne : YES
ClassKit
- Description : ClassKit permet aux enseignants d’afficher la progression de l’étudiant sur les activités qui lui ont été affectées dans votre application.
- Clé : com.apple.developer.ClassKit-environment
- Chaîne :
development
ouproduction
Résumé
Ce guide a présenté les différents droits et a expliqué comment les utiliser dans Visual Studio pour Mac et Visual Studio. Il a également fourni des informations de référence sur les paires clé-valeur pour chaque fonctionnalité.