App se bloque avec __CRASHING_DUE_TO_PRIVACY_VIOLATION__ en essayant d'accéder aux contacts

Lors de la mise à jour vers iOS 10, en essayant d'accéder aux contacts via le plugin cordova-plugin-contacts v2.2.0, l'application sort avec

__CRASHING_DUE_TO_PRIVACY_VIOLATION__

Je ne sais pas quelles autres informations supplémentaires je peux fournir en ce moment, laissez-moi savoir si je peux être plus précis. Merci.

Peut-être que cela est d'une certaine utilité: https://stackoverflow.com/a/39416858/592641 , mais je ne pouvais pas find un guide sur la façon de spécifier ces descriptions d'utilisation dans cordova.

Après avoir créé le projet xcode et trouvé le file Info.Plist , vous pouvez essayer d'append la key NSContactsUsageDescription , qui doit accepter une valeur de string.

Une list complète de Cocoa Keys

J'espère que cela pourra aider!

MODIFIER

Une partie de la doc: (qui peut vous aider à comprendre pourquoi il plante)

Important: Pour protéger la confidentialité des users, une application iOS liée à iOS 10.0 ou ultérieure et qui accède aux contacts de l'user doit déclarer de manière statique son intention de le faire. Incluez la key NSContactsUsageDescription dans le file Info.plist de votre application et fournissez une string d'objects pour cette key. Si votre application tente d'accéder aux contacts de l'user sans string de fonction correspondante, votre application se ferme.

En bref, les descriptions d'utilisation doivent être spécifiées dans *info.plist

Ce n'est pas bon pour le code de Cordova puisque les files .plist ne font pas partie du référentiel. La façon la plus simple de les placer dans config.xml est la suivante:

  1. Installez cordova-custom-config
  2. Ajoutez le file config.xml suivant:

.

 <platform name="ios"> <config-file parent="NSContactsUsageDescription" target="*info.plist"> <ssortingng>Easily invite your friends</ssortingng> </config-file> </platform> 

Pour moi, j'essayais de requestr l'access au microphone, mais je n'avais pas défini la string Privacy - Microphone Usage Description .

Allez dans votre file Info.plist et descendez jusqu'aux valeurs qui commencent par Privacy . Assurez-vous d'append des keys et des valeurs de string pour tout ce qui concerne votre application.

Capture d'écran des valeurs commençant par Privacy dans info.plist

Je suis arrivé ici avec la même erreur en utilisant Kudan AR via Unity, et la réponse de @ NeverHelpless était sur la cible, sauf que le correctif était NSCameraUsageDescription (Ajouter à Info.plist avec une string de description)