UIRequiredDeviceCapabilities error when publishing to App Store Connect

When I try to upload my 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 'Wilkins Avenue Lancome Holiday.app/AppClips/WilkinsAvenueLancomeHolidayClip.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

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 : https://drive.google.com/drive/folders/1sHVl86EH0YhS9vlK5vNPz44xnSqipbXY?usp=sharing

It is worth noting that both the App and AppClip work fine when I build & run them on my iPhone.

Replies

I am encountering the same issue as well.

  • Hi, I have been encountering the issue since the latest update of Xcode but I'm not sure it is related. Did your project work fine before the latest update? If so, I think we should fill a bug report.

  • Yes. My project was working fine. The app containing the Appclip and ARKit is already in the AppStore. The issue happened recently. I also tried uploading a build that was accepted previously and got rejected as well.

Add a Comment

 App Clips and their associated full app must have the same UIDeviceFamily and UlRequiredDeviceCapabilities values. 

For instance, if the full app's UlRequiredDeviceCapabilities contains the arm64 and ARKit values, then the associated App Clip's UlRequiredDeviceCapabilities must only contains these values. If the full app is set for both iPhone and iPad device families, then the App Clips must only be set for both of these families.

  • Thank you for your reply. However, as you can see in the screenshots attached to my post, the UlRequiredDeviceCapabilities values seem to be identical in both Info.plist files (ARKit and armv7 are the only Required Device Capabilities for both the App and the App Clip), and the error message is specifically about the ARKit value in the UlRequiredDeviceCapabilities.

    What am I missing?

    Here is the google drive link to the screenshots : https://drive.google.com/drive/folders/1sHVl86EH0YhS9vlK5vNPz44xnSqipbXY?usp=sharing

  • My project also matches both the DeviceFamily and the RequiredDeviceCapabilities in the App Info.plist and the AppClip Info.plist.

Add a Comment

Same issue, totally stuck. I have only armv7 as device capability and the error shows "must match the UIRequiredDeviceCapabilities values []". As for you it only shows ARKit, maybe it has something to do with armv7 which is invisible... Anyway i tried to remove it with no success.

Hi everyone, I ended up deploying using XCode 13.2.1. It works if I use that version.

Hope this gets fixed in a future version.

  • Thanks a lot that solved it. I was using XCode 13.4.1 with error. After installing 13.2.1 uploading old archive would result in the same error, but archiving again and uploading works. So i guess it is an archive problem..

Add a Comment

Hi, I experienced this issue as well and had a bit of a difficult time figuring out what happened, but I was able to fix it. This may or may not work in your case.

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.

Hope this helps!