Apps that include an app extension and a framework must support arm64
February 8, 2015
Yesterday I was finally shipping an update to one of my apps, but each time I tried submitting to iTunes Connect I got back error -9000:
Invalid architecture: Apps that include an app extension and a framework must support arm64
Googling didn’t reveal too much (the project was set up fine to build for both 32-bit and 64-bit), but the following seemed to fix the issue:
- Going through project.pbxproj and manually replacing
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
withIPHONEOS_DEPLOYMENT_TARGET = 8.0;
(I had set 8.0 in the UI, no idea why the file hadn’t updated) - Ensuring that the ‘Build Active Architectures Only’ was set to NO for release builds (again, I had set this in the UI, but checked it in the project.pbxproj file)
- Deleting an old static library from the Frameworks group. This is the weird one, but I suspect it was what was causing the issue. The app had previously linked to a static library that had been 32-bit only, but I had long since deleted it. The app itself didn’t link against it, but there was still a link showing up for it in the Xcode project (it showed in red though, it didn’t actually exist)
The phrasing of the error isn’t great; there ought to be an ‘or’ rather than an ‘and’ in there (my app only contains a framework, not an extension).
♦