4

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.

R15
  • 13,982
  • 14
  • 97
  • 173
Nidhi Sood
  • 125
  • 1
  • 1
  • 7

3 Answers3

11

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.

FreakyAli
  • 13,349
  • 3
  • 23
  • 63
  • I would say you should absolutely **not** add a calendar permission if you don't explicit need access to calendar. If there is a 3rd party component accessing calendar without your knowledge you should stop using that component or report the issue to them to fix. Never request permissions you cannot vouch for. – Frode Evensen Jun 25 '20 at 10:18
  • 1
    If you see the Answer is 2 years old, I have already raised a bug with Telerik about this and got it fixed. Secondly, their DLL does not actually use the calendar. It was something from Apple side too. NOWHERE does that DLL refer to anything that requires `NSCalendarsUsageDescription` permission, But back then when you deployed this to the store they always showed this error. Could be something in their permission detection algorithm, I am not sure! – FreakyAli Jun 25 '20 at 11:06
0

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

R15
  • 13,982
  • 14
  • 97
  • 173
0

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.