Certaines classes intéragissent avec des capteurs afin de fournir des informations dont l'usage est en lien avec le respect de la vie privée.
Lorsqu'une application utilise une telle classe, il faut demander à l'usager la permission d'utiliser des données en lien avec sa vie privée.
Ceci consiste à ajouter une clé dans Info.plist afin d'indiquer à l'usager pourquoi l'application veut utiliser ces informations.
Le nom exact de la clé est précisé dans la documentation officielle de la classe en question.
Grâce à cette clé, lorsque l'application sera lancée, une boîte de dialogue demandera à l'usager la permission d'utiliser ces informations. L'usager devra accepter pour que l'application puisse fonctionner.

Lorsque c'est requis, la documentation indique clairement qu'il faut ajouter une entrée dans Info.plist. Pour chacune des classes en cause, on retrouve un avertissement du genre1 :

Si vous ne le faites pas, l'application plantera ou les fonctionnalités qui requièrent cette clé ne seront pas activées.
Dans le cas où l'application plante, vous obtiendrez dans Xcode un écran qui indique que l'application a envoyé un code SIGABRT (SIGnal ABoRT).

Et au bas de l'écran, vous aurez un message qui indique plus clairement ce qui a causé ce signal.
Par exemple, dans le cas d'une application qui utilise la classe CMPedometer, le message indique que l'application n'a pas de clé NSMotionUsageDescription dans son fichier Info.plist.

Pour que l'application puisse fonctionner, vous devez ajouter une clé dans Info.plist.
Dans la clé nouvellement ajoutée, la valeur doit correspondre au texte qui indique pourquoi l'application a besoin d'accéder à ces informations.
Ce pourrait être quelque chose du genre « $(PRODUCT_NAME) a besoin d'accéder à ces informations pour calculer vos pas quand l'application est active. ».
1. « CMPedometer ». Apple. https://developer.apple.com/documentation/coremotion/cmpedometer
« Requesting Authorization for Location Services ». Apple. https://developer.apple.com/documentation/corelocation/requesting_authorization_for_location_services
▼Publicité