Anton Tropashko Anton Tropashko - 1 month ago 92
iOS Question

The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data

Got a build rejection
The app's

Info.plist
must contain an
NSMicrophoneUsageDescription
key with a string value explaining to the user how the app uses this data.

The app does not use microphone. Or so I think.

How do I track down where mike is used?

Answer

And the culprit was (drums) : Instabug framework. They tell you right there on their marketware pages they allow users to take audio notes during feedback composition. So I've added NSMicrophoneUsageDescription into the app plist explaining that.

Note that there is a lot of apple API that instabug uses

Undefined symbols for architecture arm64: (i've removed some that seems legitimate according to what that framework claims to do and left what I see no claims for in the marketware)

"_AVMakeRectWithAspectRatioInsideRect", referenced from: +[IBGIAMImageAttachmentView sizeForContent:forWidth:] in InstabugHost_lto.o

"_OBJC_CLASS_$_CTTelephonyNetworkInfo", referenced from: objc-class-ref in InstabugHost_lto.o

"_AVNumberOfChannelsKey", referenced from: -[IBGVoiceNoteManager startRecording] in InstabugHost_lto.o

"_CTRadioAccessTechnologyHSDPA", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyGPRS", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyWCDMA", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyEdge", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMA1x", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMAEVDORevA", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMAEVDORevB", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyLTE", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_OBJC_CLASS_$_AVURLAsset", referenced from: _OBJC_CLASS_$_IBGAsset in InstabugHost_lto.o

"_OBJC_METACLASS_$_AVURLAsset", referenced from: _OBJC_METACLASS_$_IBGAsset in InstabugHost_lto.o

"_CTRadioAccessTechnologyCDMAEVDORev0", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

"_CTRadioAccessTechnologyHSUPA", referenced from: +[IBGInspector getCarrier] in InstabugHost_lto.o

ld: symbol(s) not found for architecture arm64

So in this post-Snowden world I have to wonder why does it need coretelephony, for example.

Comments