LibGDX app refused at AppStore for not including NSCalendarsUsageDescription - ios

I finally got to deploy my app for iPhone, and now that I uploaded to iTunes Connect I'm getting this message from Apple:
We have discovered one or more issues with your recent delivery for
"App name". 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.
So either I need to add the NSCalendarsUsageDescription key, but I don't know why LibGDX is attempting to access user's calendar, or somehow I should remove the code that access this resources that I'm not using.
Anybody has solved this? I'm using RoboVM to deploy for iOS.

Just add the key in your info.plist . If LibGDX tries to access the calender an alert view will pop up with the text you entered for that key. So after adding the key just go through the whole app once and check if you get a alert anywhere. If not then you can keep any value for the key. If you do see the alert try to identify why its trying to access the calender and update the key value accordingly.

Related

"Import Error" when I upload .ipa file to iTunes Connect

I'm trying to upload my iOS App to App Store but I have some issues to upload my .ipa file to iTunes Connect.
I'm trying to upload my .ipa file wheter through Application Loader or XCode and the uploading seems to be ok.
For a while if I look at Activity I see the build written "Processing" but immediately after iTunes Connect doesn't show the build and, when I check the delivery status of my App in Application Loader -> Window -> Delivery Status, I read that there was an
"Import Error"
with no description of the error that occurred.
Which could be the problem?
I've solved the problem thanks to the response Email from the App Store Team:
Missing Info.plist key - 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.
Missing Info.plist key - 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.
I do not know why I need these keys but I hope it will be useful to those who will have the same problem.

Why am I getting an e-mail saying The app's Info.plist must contain an NSPhotoLibraryUsageDescription key when I already do ?

Hi tried to upload my app to Itunes connect , everything was successful (archive etc) but then it didn't appear on iTunes connect, I later got an e-mail saying
"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."
However I do have in the info.plist this : Privacy - Camera Usage Description
Where could this come from ? thanks !

Build upload from xcode 8 fails. No binary on itunesconnect

I was trying to upload a build(Version:2.1, Build:2.1.0) from Xcode 8. It failed with following error.
After 9-10 failed attempts, I succeeded once but that binary is not appearing on iTunes Connect. It's been 15 hours since and the binary is still not appearing on iTunes Connect.
So I decided to perform following steps:
Re-archive and submit the build(Version:2.1, Build:2.1.0) again. It says the same build already exists.(I can't see it on itunesconnect)
Re-archive and submit the build(Version:2.1, Build:2.1.1). In first 6-7 attempts, it gave the same error as shown in the screenshot. But at last, the build was submitted successfully. (I still can't see any build on iTunes Connect)
I contacted Apple support and here is the answer I got from them,
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.
Applying this fix solved my problem. The binary get uploaded in the first attempt and it also has appeared in itunesConnect.
Check your email, Apple will send you keys(from info.plist like NSPhotoLibraryUsageDescription etc.) which you missed.
Just add all of them and fill up description in keys
Example :
NSCameraUsageDescription
Please allow the app to access your photo camera
NSLocationWhenInUseUsageDescription
App use Locations service
NSMicrophoneUsageDescription
Please allow the app to access your photo microphone
NSPhotoLibraryUsageDescription
Please allow the app to access your photo gallery
Try it using XCode 8... Open the Application Loader(Xcode -> Open Developer Tool -> Application Loader). Choose the build that you archived and then submit to the Apple Store.
Maybe, you need change the build version before do the step above.
It works for me. I hope that works for you!

ipa uploaded successfully but not showing after upload completes xcode 8

While my build is uploading, it shows in iTunes Connect, but when uploading gets completed successfully the build no longer shows on iTunes Connect, it get vanished from there.
I tried with both XCode 8 and application loader. I added all required keys in info.plist for usage descriptions.
First of all, check the message from Apple. Recently I also faced same issue. The reason was pretty simple, I missed description keys in info.plist. These keys are mandatory in Xcode 8 + iOS 10 SDK
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.
This app attempts to access privacy-sensitive data without a usage
description. The app's Info.plist must contain an
NSBluetoothPeripheralUsageDescription key with a string value
explaining to the user how the app uses this data.
Additionally, I was also forced to include "Camera usage description key". I uploaded again with new bundle number, and build reflected in iTunes connect.
This is overcrowded question so this problem is multiple type of process you can try.
This processing step taking around 15 to 20 minutes as it usually does, now applications stay in processing for 24 hours or more at a time.
Try 1 - Upload new binary:
upload a new binary of the same application with an incremented build number.
Try 2 - Avoid using Bitcode
If you've enabled Bitcode in your application,This can be done by going to Setup: Project>Build Settings>All>Build Options and setting "Enable Bitcode" to NO after this you should recompile the app, archive and upload it again using iTunes Connect.
Try 3. Use Application Loader
use the Application Loader utility to upload a new build of your app. After the upload process finishes, your app should also get out of the "Processing" status.
Try 4. Use the latest Xcode.
iTunes Connect "Processing" issue and managed to solve it, using Latest Xcode to build and upload your app might just be the winning solution for your problems.
Try 5. Go to Contact
"Resources & Help" in iTunes Connect. Select "Contact Us".
There are 2 possibilities in this:
1. You are using outdated Xcode to upload. Try the latest one, because apple support stop working for old xcodes after launch of new xcode version.
Your permissions in plist are not available, like you may be using camera feature, photos feature, location feature but permissions are not given in plist so kindly add keys for the permissions in plist..
The best way to figure out about the issue is to check the email ID that is registered with Apple developer account, you must have received email from Apple about the missing component in code. That makes the build of application invalid, so check email first to figure out what exactly the main issue is. It clearly states the next steps. Most of the time above 2 issues are found when build is not appearing in iTunes.

Xcode 8 Invalid Binary

My app only require iCloud UIDocument service. However, it sent me a warning email below and a invalid binary warning notification after uploading to iTunesConnect from Xcode 8.
It is non-sense to ask me to add NSCalendarsUsageDescription and NSBluetoothPeripheralUsageDescription description on Info.plist
May I miss some setting after upgrade Xcode from 7 to 8 ??
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 NSBluetoothPeripheralUsageDescription key with a string value explaining to the user how the app uses this data.
You need to put values for the two keys mentioned in your Info.plist file:
NSCalendarsUsageDescription
NSBluetoothPeripheralUsageDescription
e.g. "MyAPP needs access to your calendar for events"
If you do not need/use these capabilities, then there is something in your binary that's triggering Apple's static analyzer.
Check 3rd party libs in your project because some of them have been causing similar issues to this (in your case it may well be AdMob) - some have updated their SDKs to fix it, so make sure you're on the latest version of 3rd party SDKs.
Check the Capabilities section of your App's target configuration - is there anything in there that is unnecessary - particularly in the "Background Modes" section.
I had the same problem, review your info.plist and tries to add the following fields
Privacy - Photo Library Usage Description
or
Bluetooth Sharing - NSBluetoothPeripheralUsageDescription
You can check here the permissions that now requires iOS 10 in its info.plist here: https://blog.xamarin.com/new-ios-10-privacy-permission-settings/
This worked for me.

Resources