Missing NSCalendarsUsageDescription key with purpose string after using Telerik library

Viewed 11686

I used Telerik list view in my forms project. Yesterday, I uploaded it to App Store connect via Test Flight. It got uploaded from Application Loader but got rejected from apple with this email:

App Store Connect

Dear Developer, We identified one or more issues with a recent delivery for your app, "Local183". Please correct the following issues, then upload again. "Missing Purpose String in Info.plist File. Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSCalendarsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting spring 2019, all apps submitted to the App Store that access user data will be required to include a purpose string.If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)."

Best regards,

The App Store Team

I have not used any calendar accessing code anywhere in my code but still they raised such issue I don't know why? But this never happened before implementing Telerik as I've already uploaded 2-3 versions of my app to app store connect and it never failed.

3 Answers

Well, it's very simple actually.

Your application (PCL) must be having a reference to Telerik.XamarinForms.Input since this dll's is being used by your PCL apple assumes that you have been using this in your application and hence must have rejected it from their side

How to solve this

First, there is nothing you can do if Apple thinks you need a calendar permission then you need a calendar permission

How to add the permission in your info.plist file add the following permission:

<key>NSCalendarsUsageDescription</key>
<string>*your_app_name* would like to access your calender</string>

After adding this everything should be fine

In case of queries revert.

There might different factor, check the capabilities of app, category and detail of your app that you have mentioned in app store, sometimes depends on the framework too you are using, that you need to take care. Supplying those permission not an issue. You need to add permission in info.plist file.

NSCalendarsUsageDescription

<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) user your calendar.</string>

For more information visit this page

In xcode 9 and above find the info.plist under the products folder, click on it and hover on the last tab and click on +. It will add another line below and write there on the left side "NSCalendarsUsageDescription" and press tab and write No access for calender or my app uses you calender. The left side will automatically changed into (Privacy - calender usage description). It will resolve the error and build will appear on Itunes Connect Account.

Related