iOS 10 requiert maintenant la permission de l'utilisateur pour accéder à la médiathèque, aux photos, à l'appareil photo et à d'autres matériels similaires. La solution à cela est d'ajouter leurs clés dans info.plist
avec une description pour l'utilisateur indiquant comment nous utilisons leurs données,
Je n'ai trouvé que quelques clés
NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription
Je veux savoir s’il existe plus de clés également pour d’autres matériels, comme dans iOS 10
si vous n’avez pas fourni info.plist
avec la description correcte des clés, votre application va planter si construit avec XCode - 8 beta.
Il existe une liste de tous les Cocoa Keys
que vous pouvez spécifier dans votre fichier Info.plist
:
(Cible Xcode -> Info -> Propriétés de la cible iOS personnalisée)
iOS avait déjà besoin d'autorisations pour accéder au microphone, à l'appareil photo et à la bibliothèque multimédia plus tôt (iOS6, iOS7), mais depuis iOS10
, l'application va plante si vous ne fournissez pas la description de la raison pour laquelle vous demandez l'autorisation (elle ne peut pas être vide).
Clés de confidentialité avec description de l'exemple:
Vous pouvez également ouvrir Info.plist en tant que code source:
Et ajoutez-les comme ceci:
<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} always location use</string>
Liste de toutes les clés de confidentialité:
NSCameraUsageDescription
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
NSLocationWhenInUseUsageDescription
NSAppleMusicUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
kTCCServiceMediaLibrary
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription
Au cours des derniers mois, deux de mes applications ont été rejetées lors de l'examen car la description de l'utilisation de l'appareil photo ne spécifiait pas ce que je fais avec les photos prises.
Je devais changer la description de ${PRODUCT_NAME} need access to the camera to take a photo
à ${PRODUCT_NAME} need access to the camera to update your avatar
même si le contexte de l'application était évident (l'utilisateur a appuyé sur l'avatar).
Il semble que Apple accorde maintenant plus d'attention aux descriptions d'utilisation de la confidentialité, et nous devrions expliquer en détail pourquoi nous demandons une autorisation.
Veuillez trouver ci-dessous les codes pour l'exemple d'autorisation de demande ios 10 pour info.plist
.
Vous pouvez modifier pour votre message personnalisé.
<key>NSCameraUsageDescription</key>
<string>${PRODUCT_NAME} Camera Usage</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>${PRODUCT_NAME} BluetoothPeripheral</string>
<key>NSCalendarsUsageDescription</key>
<string>${PRODUCT_NAME} Calendar Usage</string>
<key>NSContactsUsageDescription</key>
<string>${PRODUCT_NAME} Contact fetch</string>
<key>NSHealthShareUsageDescription</key>
<string>${PRODUCT_NAME} Health Description</string>
<key>NSHealthUpdateUsageDescription</key>
<string>${PRODUCT_NAME} Health Updates</string>
<key>NSHomeKitUsageDescription</key>
<string>${PRODUCT_NAME} HomeKit Usage</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} Use location always</string>
<key>NSLocationUsageDescription</key>
<string>${PRODUCT_NAME} Location Updates</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>${PRODUCT_NAME} WhenInUse Location</string>
<key>NSAppleMusicUsageDescription</key>
<string>${PRODUCT_NAME} Music Usage</string>
<key>NSMicrophoneUsageDescription</key>
<string>${PRODUCT_NAME} Microphone Usage</string>
<key>NSMotionUsageDescription</key>
<string>${PRODUCT_NAME} Motion Usage</string>
<key>kTCCServiceMediaLibrary</key>
<string>${PRODUCT_NAME} MediaLibrary Usage</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>${PRODUCT_NAME} PhotoLibrary Usage</string>
<key>NSRemindersUsageDescription</key>
<string>${PRODUCT_NAME} Reminder Usage</string>
<key>NSSiriUsageDescription</key>
<string>${PRODUCT_NAME} Siri Usage</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>${PRODUCT_NAME} Speech Recognition Usage</string>
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>${PRODUCT_NAME} Video Subscribe Usage</string>
iOS 11 et plus, si vous souhaitez ajouter une photo/image à votre bibliothèque, vous devez ajouter cette clé
<key>NSPhotoLibraryAddUsageDescription</key>
<string>${PRODUCT_NAME} library Usage</string>
Vous devez ajouter cette autorisation dans Info.plist pour iOS 10.
Photo:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
Microphone:
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
Caméra:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use