[2016.3.914.3] NSCalendarsUsageDescription & NSPhotoLibraryUsageDescription required when deploying to TestFlight

Thread is closed for posting
14 posts, 0 answers
  1. Marc
    Marc avatar
    3 posts
    Member since:
    Nov 2015

    Posted 16 Sep 2016 Link to this post

    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
  2. Sophi
    Admin
    Sophi avatar
    103 posts

    Posted 17 Sep 2016 Link to this post

    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
  3. Amandeep
    Amandeep avatar
    3 posts
    Member since:
    Jul 2015

    Posted 07 Oct 2016 in reply to Marc Link to this post

    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

  4. Amandeep
    Amandeep avatar
    3 posts
    Member since:
    Jul 2015

    Posted 10 Oct 2016 in reply to Sophi Link to this post

    Hi Sophi,

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

     

    Regards

    Amandeep

  5. Sophi
    Admin
    Sophi avatar
    103 posts

    Posted 12 Oct 2016 Link to this post

    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
  6. Sophi
    Admin
    Sophi avatar
    103 posts

    Posted 14 Oct 2016 Link to this post

    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
  7. Ricky
    Ricky avatar
    1 posts
    Member since:
    Dec 2016

    Posted 12 Dec 2016 in reply to Sophi Link to this post

    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.

     

  8. Sophi
    Admin
    Sophi avatar
    103 posts

    Posted 14 Dec 2016 Link to this post

    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
  9. Stephen
    Stephen avatar
    3 posts
    Member since:
    Nov 2015

    Posted 19 Dec 2016 Link to this post

    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.

  10. Stephen
    Stephen avatar
    13 posts
    Member since:
    Jul 2016

    Posted 19 Dec 2016 Link to this post

    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?
  11. Deyan
    Admin
    Deyan avatar
    2142 posts

    Posted 20 Dec 2016 Link to this post

    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
  12. Stephen
    Stephen avatar
    13 posts
    Member since:
    Jul 2016

    Posted 21 Dec 2016 in reply to Deyan Link to this post

    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.

  13. Deyan
    Admin
    Deyan avatar
    2142 posts

    Posted 22 Dec 2016 Link to this post

    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.
  14. Stephen
    Stephen avatar
    13 posts
    Member since:
    Jul 2016

    Posted 22 Dec 2016 in reply to Deyan Link to this post

    Understood. Thanks.
Back to Top