NSMicrophoneUsageDescription, NSSiriUsageDescription

This thread was migrated from an old forum. It may contain information that are no longer valid. For further assistance, please post a new question or open a support ticket from the Customer Support portal.

Still trying to upload our app to the apple store. I now I get this:

—————

Dear developer,

We have discovered one or more issues with your recent delivery for "KPTnet App". To process your delivery, the following issues must be corrected:

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSSiriUsageDescription key with a string value explaining to the user how the app uses this data.

Once these issues have been corrected, you can then redeliver the corrected binary.

Regards,

The App Store team

—————

Why is the app using the microphone? — I don't need it and never requested this.

Why is the app using SIRI? — I don't need it and never requested this.

And most importantly: I can never explain Swiss citizen why the app using these two features. They are far to paranoid to accept this.

Hi

With Xcode 8, Apple has introduced a new privacy-related setting around the use of hardware resources (like camera, gallery & contacts).

Developers are expected to ensure these settings are included when building their applications with Xcode 8. Kony has ensured that we integrate these settings as part of your Kony application.

As a framework we use iOS API's to used in kony API's so that applications would use them

E.g We have provided contacts API's inside fwk but they get used when application uses the API's and only if permission to use contacts would be granted by the phone user at the run time, the string to displayed on the permission dialog would be given as part of description strings.

Eg. NSContactsUsageDescription (String - iOS) describes the reason that the app accesses the user’s contacts. When the system prompts the user to allow access, this string is displayed as part of the dialog box.

Below are a few simple steps to ensure compliance

Create a JSON file with the below keys & values. You may refer the Apple documentation for more information on the keys to be included.

Add all the required keys and their description in a the JSON file and name it as

“infoplist_configuration.json”

{

"NSCalendarsUsageDescription" : "",

"NSCameraUsageDescription" : "",

"NSContactsUsageDescription" : "",

"NSLocationAlwaysUsageDescription" : "",

"NSPhotoLibraryUsageDescription" : ""

}

Add this JSON file at the following location in your project - “/resources/common”.

Now, whenever you build your applications, the Kony build process ensures that these settings are packaged and added to the info.plist in your Xcode project.

Please let us know if you need more information

Thanks

I already have an infoplist_configuration.json and I know how to create those descriptions. I even know how to create the translated version which we need here in Switzerland.

The question is more specifically about NSMicrophoneUsageDescription — Requesting to use the microphone puts us to close to spy software. This will cost us in one star ratings. That's very bad indeed.

Hi

Understand your concern.

Even though the application is not using the above API's, it shows as permissions required in settings application which is giving a wrong notion to the user.

We would take your feedback and would plan to add this as feature in the future release.

We would plan to have the frameworks as modules so to that only required modules would be loaded on need basis in the application binary, so that the above notions can be discarded from application users mind

We shall keep you updated

Thanks

„We would plan to have the frameworks as modules so to that only required modules would be loaded on need basis in the application binary, so that the above notions can be discarded from application users mind“

Yes, that would be a very good approach indeed. Looking forward to it.

I have the same issue. Do you have any news or fix?