61 votes

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

Eu une accumulation de rejet L'application de l' Info.plist doit contenir un NSMicrophoneUsageDescription clé avec une valeur de chaîne expliquant à l'utilisateur comment l'application utilise ces données.

L'application n'utilise pas de micro. Ou alors, je pense.

Comment puis-je savoir où mic est-il utilisé?

UPD23112016: étant donné que le paresseux réponse est upvoted j'ai déposé une nouvelle demande de fonctionnalité avec apple pour fermer ce trou de sécurité.

UPD05042017: il est toujours gênant qu'une fois que vous proxy mic accès dans certaines 3ème partie-cadre, par l'intermédiaire de la moitié cuit NSMicrophoneUsageDescription vous avez aucun contrôle sur où et quand il peut être utilisé si l'utilisateur accepte pour permettre mic accès. Les gens, s'il vous plaît ne diligence raisonnable et de l'artisanat précise NSMicrophoneUsageDescription ce qui reflète le fait que le micro est utilisé par le code qui est complètement hors de votre contrôle lorsque l'usage en est obscurci par une 3ème partie de binaires cadre. Merci.

84voto

Paul Lehn Points 165

Pour les paresseux:

si vous souhaitez ajouter rapidement usageDescriptions pour la plupart des médias d'accès (sur l'appareil photos, caméra, appareil photo, enregistrement vidéo, l'emplacement):

cliquez droit sur l'info.plist et de fichier -> ouvrir en tant que -> Code Source

puis collez le texte suivant entre les valeurs actuelles:

<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for uploading videos</string>
<key>NSCameraUsageDescription</key>
<string>Need camera access for uploading Images</string>
<key>NSLocationUsageDescription</key>
<string>Need location access for updating nearby friends</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app will use your location to show cool stuffs near you.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Need Library access for uploading Images</string>

Ces descriptions, bien sûr, sont à vous. J'ai essayé de les rendre aussi générique que possible.

Espérons que cela sauve quelqu'un du temps!

44voto

iYoung Points 2356

Juste ajouter NSMicrophoneUsageDescription clé et de la valeur ajouter la justification que le pourquoi de votre application à l'aide du Microphone. C'est la dernière exigence dans iOS 10.

19voto

Anton Tropashko Points 2235

Et le coupable était (batterie) : Instabug cadre. Ils vous disent sur leur marketware pages qu'ils permettent les utilisateurs de prendre des notes audio au cours de la rétroaction de la composition. J'ai donc ajouté NSMicrophoneUsageDescription dans l'app plist expliquant que.

Notez qu'il y a beaucoup de pomme d'API qui utilise instabug

Les symboles non définis pour l'architecture arm64: (j'ai supprimé quelques-uns qui semble légitime selon ce que cadre de réclamations à faire et à gauche ce que je ne vois pas de demandes pour le marketware)

"_AVMakeRectWithAspectRatioInsiderect", référencé à partir de: +[IBGIAMImageAttachmentView sizeForContent:forWidth:] dans InstabugHost_lto.o

"_OBJC_CLASS_$_CTTelephonyNetworkInfo", référencé à partir de: objc-de catégorie-réf dans InstabugHost_lto.o

"_AVNumberOfChannelsKey", référencé à partir de: -[IBGVoiceNoteManager startRecording] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyHSDPA", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyGPRS", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyWCDMA", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyEdge", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMA1x", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMAEVDOreva", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMAEVDOrevb", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyLTE", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_OBJC_CLASS_$_AVURLAsset", référencé à partir de: _OBJC_CLASS_$_IBGAsset dans InstabugHost_lto.o

"_OBJC_METACLASS_$_AVURLAsset", référencé à partir de: _OBJC_METACLASS_$_IBGAsset dans InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMAEVDOrev0", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

"_CTRadioAccessTechnologyHSUPA", référencé à partir de: +[IBGInspector getCarrier] dans InstabugHost_lto.o

ld: symbole(s) ne se trouvent pas pour l'architecture arm64

Donc dans ce post-Snowden monde je me demande pourquoi est-il nécessaire coretelephony, par exemple.

Donc, ce que je veux en venir, c'est que si vous n'avez pas la source de la 3ème partie de cadre que vous avez à communiquer à l'utilisateur de votre application lui-même n'est PAS à l'aide de micro ou la caméra de sorte que l'utilisateur dispose d'une option de refus d'accès à ce dispositif.

Vous ne voulez pas être dans les nouvelles, un jour, à cause de certaines faille de sécurité exploité via VOTRE application.

En suspens: La soigneusement conçue à l'utilisation du microphone description ne permet pas de résoudre le problème avec la sécurité complètement bien dans le cas où votre application utilise un microphone et un 3ème partie-cadre (pense que c') en a aussi besoin.

Voici les crédits dont la divulgation pourrait trouver utile de donner aux utilisateurs une idée de la 3ème partie du code de misent sur. Donner le crédit où il est dû :^)

Si vous êtes paresseux comme moi-même et de ne jamais lire le livre blanc de la sécurité dans ios voici une courte https://developer.apple.com/videos/play/wwdc2016/705/

Si vous êtes vraiment paresseux autour de 19:00 marquer le haut-parleur vous dit explicitement que vous ne devriez pas être paresseux à propos de ces descriptions.

15voto

Sharath Kumar Points 423

les applications iOS demandent à l'utilisateur d'accorder la permission avant d'accéder au Microphone. Essayer d'accéder sans autorisation de l'utilisateur va conduire à l'application crash.

Pour demander l'autorisation de l'utilisateur, nous avons juste besoin d'ajouter NSMicrophoneUsageDescription clé dans l' info.plist de fichier et et de fournir une valeur pour cette clé. La valeur peut être n'importe quelle chaîne de caractères indiquant les applications ont besoin d'accéder au microphone.

enter image description here

6voto

MEnnabah Points 786

Instabug utilise NSMicrophoneUsageDescription pour permettre à vos utilisateurs d'enregistrer une note vocale à propos d'un bug ou d'une rétroaction à vous.

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:

X