Xamarin – Missing NSCalendarsUsageDescription key with purpose string after using Telerik library

app-storetelerikxamarinxamarin.formsxamarin.ios

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.

Best Answer

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.

Related Topic