Fun with Xcode

February 07, 2015

Xcode is constantly moving on, and you have to move with it, or get left. Updating some older projects that were originally built in 2010-2011, we ended up with a mysterious error only at the point of submitting an archive to the iOS App Store.

Stack Overflow has the detailed explanation.

It turns out that if you are upgrading an older project / target, you have to add another key to your target info:

    Application requires iPhone environment = YES

or in raw keys

    LSRequiresIPhoneOS = YES

If you don’t do this correctly, you go all the way through the archive process and get rejected by iTunes Connect with a cryptic error message (ITMS-9000). Without the missing key, Xcode happily constructs an .ipa that follows a form suited for OS X rather than iOS.

The error message you get upon submitting the app is unenlightening, and so you end up resorting to Stack Overflow or some other source to try to track down the problem.

Nothing you can do about this kind of thing. Grin and bear it.