App Distribution with App Clip - Required Capabilities - ios

I'm trying to distribute a new version of my app to app store connect with an app clip. The info.plist for my app and for my app clip have the same required device capabilities:
<array>
<string>location-services</string>
<string>gps</string>
<string>armv7</string>
<string>arkit</string>
</array>
I am getting the following error when trying to distribute the app:
Invalid required device capabilities.
The UIRequiredDeviceCapabilities values [arkit, location-services, gps] in the Info.plist of app clip 'GrifGraf.app/AppClips/grifgrafAppClip.app' must match the UIRequiredDeviceCapabilities values [arkit, location-services, gps] in the Info.plist of the app.
Match the device capabilities between your app and app clip.
With error code STATE_ERROR.VALIDATION_ERROR.90845 for id
I've double checked that the capabilities match between the two plists, but I still get the error.

I found the answer
I deleted the UIRequiredDeviceCapabilities array from the info.plist in both my app and app clip, and built the app to my phone. Xcode's debugger errored saying that the app clip's required device capabilities needed to match the main app's capabilities, and included multiple capabilities in the error message, including location-services.
This means it's not looking at my info.plist files...
I grepped for location services in the project root, and found that project.pbxproj was the only spot that contained the UIRequiredDeviceCapabilities array containing location-services so it got it from there. project.pbxproj is actually hidden inside of your .xcodeproj package, you have to show package contents to access it.
I deleted the UIRequiredDeviceCapabilities array from that file, and then re-added the device capabilities to both my app and the app clip's info property lists and it resolved the issue. My guess is, it's looking inside that file to determine what the required device capabilities are, and it was out of sync with my info.plist files.

Related

UIRequiredDeviceCapabilities error when publishing App & App Clip to App Store Connect

When I try to upload my augmented reality App and App Clip to App Store Connect from my XCode project (XCode 13.3), I get the following error message :
App Store Connect Operation Error
Invalid required device capabilities. The UIRequiredDeviceCapabilities values [arkit] in the Info.plist of app clip 'MyApp.app/AppClips/MyAppClip.app' must match the UIRequiredDeviceCapabilities values [arkit] in the Info.plist of the app. Match the device capabilities between your app and app clip. With error code STATE_ERROR.VALIDATION_ERROR.90845 for id cd915e8a-4777-4c9a-9dee-af3a92b0175b
It is worth noting that both the App and AppClip work fine when I build & run them on my iPhone.
However, I have double checked my info.plist files in both my App and App Clip and they both specify the ARKit capability in the UIRequiredDeviceCapabilities field, as you can see in these screenshots :

Missing CFBundleIconName in Xcode app release

I'm trying to release an app using Xcode. Archiving and uploading the binary goes well without any issue. However the build doesn't appears in App Store Connect and I get an email
Dear Developer,
We identified one or more issues with a recent delivery for your app, >"LycCalculator" 1.2 (1). Please correct the following issues, then upload >again.
ITMS-90713: Missing Info.plist value - A value for the Info.plist key >'CFBundleIconName' is missing in the bundle 'kim.LycCalculator'. 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.
I've tried a lot of things fix this problem. I have all the app icons, app icon source is the app icon but I can't add 'CFBundleIconName' to my Info.plist so I only added icon name.
So here some screenshots of what I have right now:
app icons and launch images , app icons in assets , info.plist
Any suggestion of help would be highly appreciated.

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.

Device compabilities issue in iOS

We uploaded an app where in the first version we added to device capabilities “telephony” to restrict only iPhone devices in the info plist. In the second version we forgot to add “telephony” and we submitted to the App store. Third version we are planning to upload with device capabilities as “telephony” but while submitting to the App Store it shows the warning:
This bundle is invalid. The key UIRequiredDeviceCapabilities in the
Info.plist may not contain values that would prevent this application
from running on devices that were supported by previous versions.
How can we resolve this issue, if we require the device capability “telephony” for application lifetime, but due to my mistake on the second version we forgot to add the required device capabilities? What is the solution for it?
Thanks in advance.
I have the same warning when added to device capabilities “healthkit” t in the info plist.
This bundle is invalid - The key UIRequiredDeviceCapabilities in the Info.plist may not contain values that would prevent this application from running on devices that were supported by previous versions.
delete Info.plist -> Required device capabilities -> Item -> healthkit,upload again to submit review success.
Unfortunately it doesn't seem possible to fix this error. According to Apple's Technical Q&A:
Depending on how you narrow the devices your app supports, you will
get one of two error messages from Xcode when uploading your update to
the App Store.
"This bundle is invalid. The key UIRequiredDeviceCapabilities in the
Info.plist may not contain values that would prevent this application
from running on devices that were supported by previous versions."
When you see this error message, you have added a new constraint,
under the UIRequiredDeviceCapabilities key in your app's info.plist
file.
Important: Because you can't add UIRequiredDeviceCapabilities
restrictions after an app is in the store, be sure to plan ahead by
choosing requirements you will be comfortable supporting indefinitely
going forward.
You are allowed to relax UIRequiredDeviceCapabilities restrictions, but not tighten them. Once restrictions are relaxed they cannot be tightened back again.

Resources