84 votes

Application rejetée en raison de descriptions d'utilisation manquantes (Xcode8)

J'ai donc reçu ce mail aujourd'hui en disant que la dernière version de mon application a été rejeté par iTunes Connect en raison de l'absence partielle de l'utilisation de descriptions. Pour être exact:

Cette application tente d'accéder à la confidentialité des données sensibles sans une description de l'utilisation. L'application Info.plist doit contenir un NSContactsUsageDescription clé avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.

Cette application tente d'accéder à la confidentialité des données sensibles sans une description de l'utilisation. L'application Info.plist doit contenir un NSCalendarsUsageDescription clé avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.

Cette application tente d'accéder à la confidentialité des données sensibles sans une description de l'utilisation. L'application Info.plist doit contenir un NSPhotoLibraryUsageDescription clé avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.

Cette application tente d'accéder à la confidentialité des données sensibles sans une description de l'utilisation. L'application Info.plist doit contenir un NSBluetoothPeripheralUsageDescription clé avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.

Cette application tente d'accéder à la confidentialité des données sensibles sans une description de l'utilisation. L'application Info.plist doit contenir un NSMicrophoneUsageDescription clé avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.

Cette application tente d'accéder à la confidentialité des données sensibles sans une description de l'utilisation. L'application Info.plist doit contenir un NSMotionUsageDescription clé avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.

Une fois que ces problèmes ont été corrigés, vous pouvez ensuite remettre le corrigé binaire.

J'ai compris que ces sont devenues obligatoires avec iOS 10, mais le seul problème c'est que mon application ne demande pas la permission d'accéder à l'un de ces.. je croyais que la description est obligatoire si vous avez réellement demandé une autorisation?

Est-ce parce que l'un de mes dépendances (Cocoapods) peut contenir du code de demander ces autorisations? Ou sont ces descriptions obligatoire même si je n'ai jamais demander à voir les utilisateurs de calendrier, contacts, etc?

134voto

mitul marsonia Points 196

iOS 10 doit ajouter une autorisation en info.plist viens de revoir ce BLOG :- paramètres-en-ios-10 , vous obtenez tous les idée.

Ajouter la permission de info.plist de base du fichier sur votre erreur du journal.

NSCameraUsageDescription

<key>NSCameraUsageDescription</key>
    <string>$(PRODUCT_NAME) camera use.</string>

NSContactsUsageDescription

<key>NSContactsUsageDescription</key>
    <string>$(PRODUCT_NAME) contacts use.</string>

NSPhotoLibraryUsageDescription

<key>NSPhotoLibraryUsageDescription</key>
    <string>$(PRODUCT_NAME) photos and video use.</string>

NSBluetoothPeripheralUsageDescription

<key>NSBluetoothPeripheralUsageDescription</key>
    <string>$(PRODUCT_NAME) bluetooth use.</string>

NSMicrophoneUsageDescription

<key>NSMicrophoneUsageDescription</key>
    <string>$(PRODUCT_NAME) microphone use.</string>

NSMotionUsageDescription

<key>NSMotionUsageDescription</key>
    <string>$(PRODUCT_NAME) motion use.</string>

NSLocationAlwaysUsageDescription

<key>NSLocationAlwaysUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSLocationUsageDescription

<key>NSLocationUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSLocationWhenInUseUsageDescription

<key>NSLocationWhenInUseUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSRemindersUsageDescription

<key>NSRemindersUsageDescription</key>
    <string>$(PRODUCT_NAME) reminders use.</string>

NSSiriUsageDescription

<key>NSSiriUsageDescription</key>
    <string>$(PRODUCT_NAME) siri use.</string>

NSVideoSubscriberAccountUsageDescription

<key>NSVideoSubscriberAccountUsageDescription</key>
    <string>$(PRODUCT_NAME) video use.</string>

NSSpeechRecognitionUsageDescription

<key>NSSpeechRecognitionUsageDescription</key>
    <string>$(PRODUCT_NAME) speech recognition use.</string>

NSCalendarsUsageDescription

<key>NSCalendarsUsageDescription</key>
    <string>$(PRODUCT_NAME) user your calendar.</string>

enter image description here

33voto

Matthew Seaman Points 5137

Les descriptions sont obligatoires pour tout contenu que vous ou des cadres de vous lier à l'encontre de la tentative d'accès. Les erreurs sont générés lors d'une tentative d'accès au contenu si une description de l'utilisation n'a pas été fourni, donc si vous êtes l'obtention de ces erreurs de votre application doit être en fait la demande. Vous devez découvrir pourquoi votre application ou de ses cadres ont besoin de ces et ajouter de l'utilisation appropriée des descriptions de votre application info.plist.

Ou plus idéalement, si vous n'avez pas besoin d'accès, voir si il y a un moyen de ne pas la demande (ou de l'utilisation des cadres qui ne sont inutilement).

9voto

mgyky Points 2267

Vous pouvez ajouter dans votre info.plist comme:

 <key>NSCalendarsUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
 

etc.

L'espoir aidera quelqu'un ...

6voto

Dielson Sales Points 1145

J'ai eu le même problème, et il semble que si l'un des frameworks que vous associez a un code qui demande cette autorisation (même si votre application ne le demande jamais), les descriptions d'utilisation sont nécessaires. Mais selon mon test, si vous ne les demandez pas, elles n'apparaîtront pas dans la liste des autorisations de votre application.

2voto

TRINADH KOYA Points 898

Calendrier : Clé : Vie Privée - Calendriers Description De L'Utilisation
Valeur : $(PRODUIT_NOM) calendrier des événements

Rappel : Clé : Vie Privée - Rappels Description De L'Utilisation
Valeur : $(PRODUIT_NOM) rappel de l'utilisation

Contact: Clé : La Confidentialité Des Contacts Description De L'Utilisation
Valeur : $(PRODUIT_NOM) contact

Photo : Clé : Vie Privée - Bibliothèque De Photos, Une Description De L'Utilisation
Valeur : $(PRODUIT_NOM) photo utilisation

Partage Bluetooth : Clé : Vie Privée - Une Description De L'Utilisation De Périphériques Bluetooth
Valeur : $(PRODUIT_NOM) utilisation de Périphériques Bluetooth

Microphone : Clé : Vie Privée - L'Utilisation Du Microphone Description
Valeur : $(PRODUIT_NOM) microphone utilisation

Appareil photo : Clé : Vie Privée - L'Usage De La Caméra Description
Valeur : $(PRODUIT_NOM) utilisation de l'appareil photo

Emplacement : Clé : Vie Privée - Emplacement Toujours Une Description De L'Utilisation
Valeur : $(PRODUIT_NOM) l'utilisation de la localisation

Clé : Vie Privée - Emplacement Lors De L'Utilisation, Une Description De L'Utilisation
Valeur : $(PRODUIT_NOM) l'utilisation de la localisation

Heath : Clé : Protection Des Renseignements Personnels - Santé De L'Action Description De L'Utilisation
Valeur : $(PRODUIT_NOM) landes en partage l'usage

Clé : Protection Des Renseignements Personnels De Santé - Mise À Jour Description De L'Utilisation
Valeur : $(PRODUIT_NOM) heath mise à jour, utilisez

HomeKit : Clé : Vie Privée - HomeKit Description De L'Utilisation
Valeur : $(PRODUIT_NOM) à la maison l'utilisation de kit

Médiathèque : Clé : Vie Privée - Bibliothèque Multimédia Description De L'Utilisation
Valeur : $(PRODUIT_NOM) médiathèque utilisation

Motion : Clé : La Vie Privée De Mouvement De La Description De L'Utilisation
Valeur : $(PRODUIT_NOM) motion utilisation

Reconnaissance De La Parole : Clé : Vie Privée - Une Description De L'Utilisation De La Reconnaissance Vocale
Valeur : $(PRODUIT_NOM) discours d'utilisation

SiriKit : Clé : Vie Privée - Siri Description De L'Utilisation
Valeur : $(PRODUIT_NOM) utiliser siri

Fournisseur de services de TÉLÉVISION : Clé : vie privée - TÉLÉVISION Fournisseur Description de l'Utilisation
Valeur : $(PRODUIT_NOM) tvProvider utilisation

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: