À l'aide de iOS 10.0
dernière version bêta. J'avais essayé d'utiliser Camera pour scanner des codes à barres dans mon application, et cette erreur d'exécution s'est écrasée.
Cette application s'est bloquée car elle a tenté d'accéder à données sans description d'utilisation. Info.plist de l'application doit contenir une clé NSCameraUsageDescription avec une valeur de chaîne expliquant le utilisateur comment l'application utilise ces données.
Mettez cette clé dans le plist, mais elle s’est quand même écrasée?
Après iOS 10, vous devez définir et fournir une description de l’utilisation de toutes les données confidentielles du système auxquelles votre application a accès dans Info.plist, comme indiqué ci-dessous:
Calendrier
Key : Privacy - Calendars Usage Description
Value : $(PRODUCT_NAME) calendar events
Rappel :
Key : Privacy - Reminders Usage Description
Value : $(PRODUCT_NAME) reminder use
Contact :
Key : Privacy - Contacts Usage Description
Value : $(PRODUCT_NAME) contact use
Photo:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
Partage Bluetooth:
Key : Privacy - Bluetooth Peripheral Usage Description
Value : $(PRODUCT_NAME) Bluetooth Peripheral use
Microphone :
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
Caméra :
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
Emplacement :
Key : Privacy - Location Always Usage Description
Value : $(PRODUCT_NAME) location use
Key : Privacy - Location When In Use Usage Description
Value : $(PRODUCT_NAME) location use
Santé:
Key : Privacy - Health Share Usage Description
Value : $(PRODUCT_NAME) heath share use
Key : Privacy - Health Update Usage Description
Value : $(PRODUCT_NAME) heath update use
HomeKit:
Key : Privacy - HomeKit Usage Description
Value : $(PRODUCT_NAME) home kit use
Médiathèque :
Key : Privacy - Media Library Usage Description
Value : $(PRODUCT_NAME) media library use
Mouvement :
Key : Privacy - Motion Usage Description
Value : $(PRODUCT_NAME) motion use
Reconnaissance de la parole :
Key : Privacy - Speech Recognition Usage Description
Value : $(PRODUCT_NAME) speech use
SiriKit:
Key : Privacy - Siri Usage Description
Value : $(PRODUCT_NAME) siri use
Fournisseur de télévision:
Key : Privacy - TV Provider Usage Description
Value : $(PRODUCT_NAME) tvProvider use
Vous pouvez obtenir des informations détaillées dans this link.
Comme Apple a changé la manière dont vous pouvez accéder aux types de données privés de l'utilisateur dans iOS 10
.
Vous devez ajouter la clé "Privacy - Camera usage description
" au Info.plist
de votre application et les informations d'utilisation qui s'appliquent à votre application, comme dans l'exemple ci-dessous que j'avais fourni et que j'avais utilisé pour scanner des codes à barres.
Pour plus d'informations, veuillez trouver la capture d'écran ci-dessous.
Vous devez ajouter cette clé ci-dessous dans info.plist.
NSCameraUsageDescription
Or Privacy - Camera usage description
Et ajoutez une description de l'utilisation.
Des captures d'écran détaillées sont disponibles dans ce lien - link
Sinon, ouvrez Info.plist en tant que code source et ajoutez ceci:
<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>
Utilisez ces valeurs brutes et copiez dans info.plist
<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) calendar events</string>
<key>NSRemindersUsageDescription</key>
<string>$(PRODUCT_NAME) reminder use</string>
<key>NSCameraUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires to access your microphone to record video with your voice send via chat</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSContactsUsageDescription</key>
<string>$(PRODUCT_NAME) contact use</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
Un autre exemple auquel j’ai été confronté lors de la tentative d’utilisation de l’appareil photo était qu’il était toujours occupé à planter, donnant le même _CRASHING_DUE_TO_PRIVACY
même après l’ajout de la "Description de l’utilisation de l’appareil photo". Après avoir échoué à obtenir quoi que ce soit de concret de la pile d’appels, basculez sur «Organiseur» et examinez les rapports d’incident sur l’appareil. J'ai constaté qu'il s'agissait en fait d'une plainte contre la confidentialité en raison de l'absence de la "description d'utilisation du microphone". J'ai ajouté cela et je me suis débarrassé d'une telle panne cryptique.
Si vous utilisez Ionic, vous pouvez le résoudre directement depuis config.xml en ajoutant un tag ios à l'intérieur de la plateforme:
<platform name="ios">
.
.
.
<config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
<string>photo library usage description</string>
</config-file>
<config-file target="*-Info.plist" parent="NSCameraUsageDescription">
<string>camera usage description</string>
</config-file>
.
.
.
</platform>
J'aimerais remercier @BHUPI pour sa réponse.
J'ai vérifié le plist et trouvé qu'il ne fonctionne pas, seulement dans les informations de "projet", vous devez ajouter le "Privacy - Camera ....", alors cela devrait fonctionner. J'espère vous aider.
Pour ceux qui rencontrent toujours l'erreur même si vous avez ajouté les clés appropriées dans Info.plist:
Assurez-vous que vous ajoutez la clé dans Info.plist approprié. La nouvelle version de xCode a apparemment 3 Info.plist.
L'un est sous le dossier avec le nom de votre application, ce qui a résolu le problème pour moi.
La seconde est sous YourappnameTests et la troisième est sous YourappnameUITest.
J'espère que ça aide.
Pour ce faire, vous devez ajouter une clé d'utilisation à Info.plist de votre application, ainsi qu'une chaîne d'objet . NSCameraUsageDescription Spécifie le motif de votre application pour accéder à la caméra de l'appareil.