This is a migrated thread and some comments may be shown as answers.

[2016.3.914.3] NSCalendarsUsageDescription & NSPhotoLibraryUsageDescription required when deploying to TestFlight

13 Answers 486 Views
Calendar
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Marc
Top achievements
Rank 1
Marc asked on 16 Sep 2016, 08:37 AM

i just tried to submit my app with the updated telerik calendar (this is the only change beside switching to XCode8/iOS10) to TestFlight and got rejected:

 

Dear developer,
We have discovered one or more issues with your recent delivery for "xxxx". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription 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

i do added to requested key`s to my info.plist to resolve this for now but i am not accessing this resources and therefor i dont want to be forced to set these. primary reason is that my users will get this permission request description displayed and the nature of my app makes it quite obvious that it does not need this permissions to do its job.

Dear developer,
We have discovered one or more issues with your recent delivery for "xxxx". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription 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
Dear developer,
We have discovered one or more issues with your recent delivery for "xxxx". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription 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

13 Answers, 1 is accepted

Sort by
0
Sophi
Telerik team
answered on 17 Sep 2016, 08:25 AM
Hello Marc,

Our last release does not include breaking changes in any of our controls. We do not require additional permissions or capabilities of the application.

Can you confirm that you have successfully uploaded your app to the App Store before upgrading Telerik UI?
Also, are you completely sure that you haven't done any changes except the upgrade?

Regards,
Sophi
Telerik by Progress
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
Amandeep
Top achievements
Rank 1
answered on 07 Oct 2016, 05:52 AM

Hi

I can confirm the same issue. I create dummy project and add telerik framework to use slidemenu. Submit the app to app store with not issue. No I add -ObjC as other linker flag, got same issue as mentioned above for NSCalendarsUsageDescription. So I suspect there is something in API that requires Calendar when -ObjC flag is enabled.

 

Regards

Amandeep

0
Amandeep
Top achievements
Rank 1
answered on 10 Oct 2016, 05:55 PM

Hi Sophi,

Any update on this issue as I proveide way to replicate this issue.

 

Regards

Amandeep

0
Sophi
Telerik team
answered on 12 Oct 2016, 06:46 AM
Hi Amandeep,

Thank you for sharing your experience. 
Since you are able to reproduce the issue we will investigate it as soon as possible and we will let you know about the outcome.
Stay tuned for update on this issue.
 
Regards,
Sophi
Telerik by Progress
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
Sophi
Telerik team
answered on 14 Oct 2016, 11:49 AM
Hello guys,

Further investigation showed that since iOS 10 Apple requires to provide reasoning whenever you are using sensitive data in which NSCalendar is included.
TelerikUI provides an easy way for the TKCalendar to get synchronized with the device's calendar and that specific action is though of as information sensitive. 
Unfortunately we weren't able to find a way to resolve the issue globally, for example,  by adding the NSCalendarsUsageDescription variable to the info.plist of the framework.

Bottom line you should try adding NSCalendarsUsageDescription variable to your app's info.plist and provide a description like "This app need to access your calendar events", it will be prompted to the user only if there is an attempt for actually retrieving the calendar events information, meaning that if you do not use this feature your users will never get that prompt.


Regards,
Sophi
Telerik by Progress
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
Ricky
Top achievements
Rank 1
answered on 12 Dec 2016, 05:39 PM

I am having same issue, and I'm not really happy with the solution from Telerik.

My app does not require an special permissions, or access to users sensitive or private data, and I resent having to tell the user that it does just to make your control suite compatible with the App Store.

I'm not even using the Calendar Control, so I don't really expect any of the downstream dependencies like Calendar permissions and declarations to apply.

There is an obvious bug here which has not been addressed - namely the inclusion of calendar binaries in the package when no calendar control is being used.

Please re-open this issue, and find a proper solution.

 

0
Sophi
Telerik team
answered on 14 Dec 2016, 03:25 PM
Hi Ricky,

I understand your concerns, however, as I mentioned in my previous answer, the users will not be prompted to provide access to sensitive data unless there in an attempt of retrieving data from the calendar.

In case you are not using the TKCalendar control in your application and you are not accessing any data from the device's calendar, your users will never have to give permission for it. 

Regards,
Sophi
Telerik by Progress
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
Stephen
Top achievements
Rank 1
answered on 19 Dec 2016, 07:51 PM

Our app has also run into this same issue.  We only use the charting library and have no need for the Calendar Control.

I agree with the previous poster.  Adding a 'dummy description' to the plist file is a workaround, not a solution.  These descriptions are meant to indicate exactly why the app is requesting private information.  "A third party library told us their code can't be factored" is not a valid reason, and goes against the spirit of apple's privacy concerns.

0
Stephen
Top achievements
Rank 1
answered on 19 Dec 2016, 10:17 PM
Agreed.This is not a solution, and now I have to but bogus communication in my app. Apple will just love that. Why is a component accessing NSCalendar being linked in, when I'm not even including the calendar binaries in my project?
0
Deyan
Telerik team
answered on 20 Dec 2016, 01:01 PM
Hi folks,

We have plans to divide the TelerikUI.framework into separate libraries containing each control and we will do that as soon as possible considering these implications - so just stay tuned.

Can you please provide us with some more information regarding whether you are using the dynamic (embedded) library or the one that is statically linked while building your app?

If not using the static library, can you try building your application using the static library and retest without setting both permissions? The unused code from the static library should be stripped out of the app and thus no need for adding permissions to the info.plist should be present. Can you verify this and let us know how thinks look in that case?

Please be patient, we are working on resolving this case.

Regards,
Deyan
Telerik by Progress
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
Stephen
Top achievements
Rank 1
answered on 21 Dec 2016, 08:03 PM

Hi, Deyan. In my case, we're using the Xamarin Forms library. I've only referenced the DLLs in the image attached, in order to use RadCartesianChart. Perhaps I have something included that I shouldn't?

I also have Link SDK assemblies only selected for our app store builds.

Let me know if there's anything else I should check. Thanks.

0
Deyan
Telerik team
answered on 22 Dec 2016, 09:49 AM
Hi Stephen,

We will continue investigating the behavior on the Xamarin platform.

Our recommendation for now is to put the property in your info.plist. Since you are not using the TKCalendar component in any way, your users will not be prompted with this permission.

We are going to put on our short-term TODO list the separation of the Telerik UI for iOS binary into separate files so that this permission is only implied when referencing the Calendar binaries.

Thanks for your understanding and patience!

Regards,
Deyan
Telerik by Progress
Want to build beautiful Android apps as well? Check out UI for Android which enables the same set of scenarios, allowing you to create the same great app experience on both iOS and Android.
0
Stephen
Top achievements
Rank 1
answered on 22 Dec 2016, 09:34 PM
Understood. Thanks.
Tags
Calendar
Asked by
Marc
Top achievements
Rank 1
Answers by
Sophi
Telerik team
Amandeep
Top achievements
Rank 1
Ricky
Top achievements
Rank 1
Stephen
Top achievements
Rank 1
Stephen
Top achievements
Rank 1
Deyan
Telerik team
Share this question
or