Je viens de commencer à faire face à ce problème avec la version iOS 10 GM. J'ai reçu un email disant:
Pour traiter votre livraison, les problèmes suivants doivent être corrigés:
Cette application tente d'accéder aux données confidentielles sans description d'utilisation. Info.plist de l'application doit contenir une clé NSCameraUsageDescription avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.
Une fois que les corrections requises ont été apportées, vous pouvez ensuite renvoyer le binaire corrigé.
Cordialement,
L'équipe de l'App Store
J'utilise google GoogleSignIn. Je n'utilise pas Firebase, mais lors de l'installation de GoogleSignIn avec des dosettes de cacao, j'ai constaté que Firebase était automatiquement installé dans les journaux.
Pouvons-nous faire autre chose que de devoir définir ces clés, mon application n’ayant rien à voir avec un appareil photo/des photos, etc., je ne veux donc pas que les utilisateurs pensent que nous les utilisons.
Je remarque que quelqu'un d'autre a également été confronté à ce problème: https://forums.developer.Apple.com/thread/62229
Voici un lien vers une solution complète de Google: https://groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ
Plus d'infos sur ce lien, mais la version TL; DR vous devez ajouter trois éléments à votre plist:
<key>NSCalendarsUsageDescription</key>
<string>Advertisement would like to create a calendar event.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Advertisement would like to store a photo.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Advertisement would like to use bluetooth.</string>
Dans iOS 10, Apple a imposé la définition de la description de l'utilisation dans Info.plist pour toute fonctionnalité nécessitant une fenêtre contextuelle. Voir http://useyourloaf.com/blog/privacy-settings-in-ios-10/
Pendant le programme bêta, les applications se bloqueraient au moment où elles afficheraient l'invite si la description d'utilisation n'était pas définie.
Il semble que les outils de validation iTunes Connect aient été modifiés pour rechercher des références dans l'application aux classes associées aux objets liés aux autorisations. S'il n'y a pas d'entrée Info.plist, ils rejettent le binaire.
Je l'ai vu dans l'une de mes propres applications où j'avais une ancienne méthode d'assistance dans une bibliothèque qui détectait si la caméra existait ou non. Même si l'application n'a jamais appelé cette méthode, elle était liée à mon binaire parce que j'utilisais une autre méthode dans le même fichier. Cette application n'a pas utilisé l'appareil photo et n'a donc pas défini l'entrée Info.plist. Et cela a été rejeté. J'ai simplement supprimé ma méthode d'assistance et déplacé les contrôles dans les autres applications qui l'utilisaient.
Cependant, AdMob semble contenir des références au calendrier. Par conséquent, une application que j'utilise et qui utilise des annonces sans utiliser le calendrier lui-même ne peut pas être soumise. Merci Google!
Voici toutes les clés de confidentialité. Nous devons les ajouter manuellement dans Info.plist avec une courte description.
• Bluetooth Sharing – NSBluetoothPeripheralUsageDescription
• Calendar – NSCalendarsUsageDescription
• CallKit – NSVoIPUsageDescription
• Camera – NSCameraUsageDescription
• Contacts – NSContactsUsageDescription
• Health – NSHealthShareUsageDescription & NSHealthUpdateUsageDescription
• HomeKit – NSHomeKitUsageDescription
• Location – NSLocationUsageDescription, NSLocationAlwaysUsageDescription, NSLocationWhenInUseUsageDescription
• Media Library – NSAppleMusicUsageDescription
• Microphone – NSMicrophoneUsageDescription
• Motion – NSMotionUsageDescription
• Photos – NSPhotoLibraryUsageDescription
• Reminders – NSRemindersUsageDescription
• Speech Recognition – NSSpeechRecognitionUsageDescription
• SiriKit – NSSiriUsageDescription
• TV Provider – NSVideoSubscriberAccountUsageDescription
EDIT: Veuillez vous reporter à la réponse ci-dessus https://stackoverflow.com/a/39476283/1634905 Qui répertorie la solution de contournement officielle proposée par Google. REMARQUE: il manque à la solution de contournement une clé supplémentaire qui sera également requise: NSCameraUsageDescription
Solution de contournement que j'ai utilisée: les frameworks Google pour AdMob et GoogleSignIn installent automatiquement firebase qui utilise de telles autorisations même si l'application ne le fait jamais. Après avoir défini NSCameraUsageDescription
dans le info.plist
, je peux soumettre sans problème en espérant que l'application ne demandera jamais à l'utilisateur de ne pas voir le texte non plus.
Fixé sur 7.11.0 https://firebase.google.com/docs/admob/release-notes
Assurez-vous de mettre à jour le SDK
Est-il possible que Google Framework utilise un cadre système supplémentaire nécessitant l'autorisation de l'utilisateur (c'est-à-dire la position de l'utilisateur) et vous oubliez d'ajouter la description associée dans le fichier .plist! Vérifiez bien cela.
Une partie de la description de l'autorisation d'utilisation est devenue obligatoire dans iOS 10.
Assurez-vous que vous ajoutez cette clé si vous êtes ArcGIS.framework de ESRI.