Partager via


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 :

  1. Dans le panneau Solution, double-cliquez sur le fichier Info.plist pour l’ouvrir.

  2. 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 :

    Enter a Bundle Identifier

  3. Enregistrez les modifications apportées au fichier Info.plist.

  4. Dans le panneau Solution, double-cliquez sur le fichier Entitlements.plist pour l’ouvrir pour modification :

    Editing the Entitlements

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

  6. 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 :

  1. Cliquez avec le bouton droit sur le fichier projet et accédez à Ajouter > un nouveau fichier... :

    Add Files context menu

  2. Dans la boîte de dialogue Nouveau fichier, sélectionnez liste de propriétés iOS > et nommez-la droits :

    New File dialog

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)*
  • 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

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)
  • 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 par iCloud. 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.

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

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

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