UIRequiredDeviceCapabilities and iOS 11
I recently upgraded the deployment target of my side project to iOS 11, a simple switch which caused the following error on submission to the app store.
ERROR ITMS-90502: “Invalid Bundle. Apps that only contain the arm64 slice must also have ‘arm64’ in the list of UIRequiredDeviceCapabilities in Info.plist.”
This seemed to make sense, I’m targetting iOS 11, which only supports 64-bit apps. Going into the app’s info.plist file, I changed the existing value of armv7 to arm64, made an archive and continued to receive the error.
After a few days of scouring for information, I found a Stack Overflow comment that suggested I would have to add this to the plist for each of the half a dozen frameworks included in the app.
It was only as I was doing this that I realised I also had some iOS extensions. I stashed my work with frameworks and just added the key to the extensions’ plists. This allowed the app to be submitted. In retrospect I suppose iOS runs extensions as units themselves so needs this information available to it in their bundles too.