Missing Purpose String in info.plist

974
4
09-24-2019 06:29 PM
YuliaMamonova
Occasional Contributor III

Hello,

It started with AppStudio 4 if I remember correctly. When I try to upload my app (based on survey123 template) with xcode application loader, it says the app is successfully delivered. and then in a couple of seconds I get this email:

It can be different things - microphone, Bluetooth, location. I eliminated all capabilities on background and microphone and audio are disabled in settings, but it keeps giving me this error.

I would appreciate your help.

Thanks,

Yulia

Tags (2)
0 Kudos
4 Replies
ShobanaSuresh
Esri Contributor

Hi Yulia,

Enabling the microphone capability in settings will resolve this issue. NSMicrophoneUsageDescription will automatically be added to the built ipa in apps that have enabled microphone capability.

Survey123 template has code that uses microphone for recording audio and bluetooth for GNSS integration.

I would suggest to enable bluetooth and microphone capabilities. Upload the app and rebuild.

Thanks

Shobana

0 Kudos
YuliaMamonova
Occasional Contributor III

Thank you, I did yesterday, and I did successfully uploaded to test flight, BUT purpose strings were not added after I enabled microphone and bluetooth, and I had to add them by myself. But in general I don't understand why I can't just disable those if I don't need them.

0 Kudos
ShobanaSuresh
Esri Contributor

Hi Yulia,

> BUT purpose strings were not added after I enabled microphone and bluetooth

Can you please confirm if the app was uploaded to ArcGIS Online before submitting the build request? Every time a change is made in Settings, the app needs to be uploaded to ArcGIS Online as the Cloud Make build servers download the app code from ArcGIS Online.

> I don't understand why I can't just disable those if I don't need them.

Survey123 app's qml code has references to microphone and bluetooth APIs. Apple finds this usage from code analysis by scanning the ipa uploaded. Purpose strings should be added in apps that have references to the corresponding functionality.

I hope this helps.

Thanks

Shobana

0 Kudos
YuliaMamonova
Occasional Contributor III

Shobana,

Thank you.

> Can you please confirm if the app was uploaded to ArcGIS Online before submitting the build request? Every time a change is made in Settings, the app needs to be uploaded to ArcGIS Online as the Cloud Make build servers download the app code from ArcGIS Online.

I do upload a new version of my app each time I make changes in the code or in app's settings.

> Survey123 app's qml code has references to microphone and bluetooth APIs. Apple finds this usage from code analysis by scanning the ipa uploaded. Purpose strings should be added in apps that have references to the corresponding functionality.

What I don't understand is why we even were granted that opportunity to check or uncheck those capabilities in the settings if all it does is adding and removing those purpose strings, while either way it is still referencing those APIs no matter if we choose to include the capabilities or not include them. So we need those purpose strings EITHER WAY. And then we gonna get a whole bunch of questions from the app reviewers on why our apps are referencing those APIs if they are not used anywhere in the app. And they will eventually reject the app, asking us to either remove this capability or add the feature to the app that will be using it. This is very much my story. And I think for a real developer there is no issue to adjust the code so it doesn't reference those APIs, but not for me.

Anyways, thank you for your response. Hopefully I can figure it out.

Yulia

0 Kudos