watchOS only App – Privacy usage description in Info.plist - ios

I have developed an watchOS only app (app with complication for calendar and reminder access). After submitting it to the iTunes Connect I got the message
Missing Purpose String in Info.plist - 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. ...
In my Info.plist of the WatchKit Extension there already exists these entries.
<key>NSCalendarsUsageDescription</key>
<string>Use for display calender timeline</string>
<key>NSRemindersUsageDescription</key>
<string>Use for display reminder timeline</string>
When I add these entries also in the WatchKit App Info.plist and upload the app to iTunes Connect I receive the following error while uploading.
App Store Connect Operation Error ERROR ITMS-90363: "Invalid
Info.plist key. The key 'NSCalendarsUsageDescription' in bundle
xxx.app/Watch/xxx WatchKit App.app is invalid."
App Store Connect Operation Error ERROR ITMS-90363: "Invalid
Info.plist key. The key 'NSRemindersUsageDescription' in bundle
xxx.app/Watch/xxx WatchKit App.app is invalid."
So how can I fix that problem and upload my WatchOS only app?

I had the same problem in a WatchOS app using Bluetooth. Only that the error was about NSBluetoothAlwaysUsageDescription.
My resolution was to only add the entries to the WatchKit Extension Info.plist and remove the entries from the WatchKit App Info.plist.

Related

Watch only app binary rejected due to missing HealthKit info.plist keys

I am having a confusing problem with my Apple Watch only app that uses HealthKit. I keep receiving Binary Rejected upon uploading to App Store Connect due to missing NSHealthShareUsageDescription and NSHealthUpdateUsageDescription keys in the info.plist. I have these keys in my info.plist and have verified that they are identical to my previous iOS apps that utilize Helathkit and have been successfully been uploaded. Is this a problem with WatchOS only apps specifically?
My info.plist keys
I figured it out on this site: learningswift.brightdigit.com. Apparently I needed to create a third Info.plist file in the project under the Xcode project file.

AppStore BUG: CFBundleIconName in WatchKitApp is missing - but when added the **key** itself is invalid?

We seem to be getting a self-contradictory set of error messages for our iOS App being submitted to the App Store.
The error begins simple enough and says we are missing a plist value. Here's the error below we receive by email from Apple after uploading our app to the store.
Missing Info.plist value - A value for the Info.plist key
'CFBundleIconName' is missing in the bundle
'com.athla.velocity.ultimate.watchkitapp'. Apps built with iOS 11 or
later SDK must supply app icons in an asset catalog and must also
provide a value for this Info.plist key. For more information see
http://help.apple.com/xcode/mac/current/#/dev10510b1f7.
But, if we add this key with its value to the plist file, we get an error saying that the key itself is invalid and we cannot even upload the app to the store. Here is the error:
ERROR ITMS-90363: "Invalid Info.plist key. The key 'CFBundleIconName'
in bundle Velocity Ultimate.app/Watch/Velocity WatchKit App.app is
invalid."
These errors are self-contradictory.
How do we solve this so we can upload our app to the store - but not get blocked for having this key in the plist file?
I just ran into the same set of issues.
In Finder, I opened the WatchKit App Info.plist file in a text editor. I removed the following lines:
<key>CFBundleIconName</key>
<string>AppIcon</string>
After that, the error went away and I was able to upload to App Store Connect.
Hope this helps you out!
I have solved this problem by doubleclick Info.plist -> Visual Assets -> AppIcons. Previously it was "Source: none", so I have selected "Source: AppIcon". I am using Visual Studio making watch app with Xamarin. After that Info.plist was changed from:
<key>XSAppIconAssets</key>
<string>Resources/Images.xcassets/AppIcons.appiconset</string>
to
<key>XSAppIconAssets</key>
<string>Assets.xcassets/AppIcon.appiconset</string>
If you remove CFBundleIconName from Info.plist, as suggested by #sulli233, and the error is still there, it might mean that you need to supply an app icon.
In Xcode, click on Assets.xcassets of the project that is failing to build, and supply the necessary images.
In this case, the error message is wrong - it says that the CFBundleIconName is missing, but what is really missing are the images themselves.

"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 !

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