Bad Version Check on Binary Validation for Upload

Our current version on the app store is:

CFBundleShortVersionString (7.0.0)
CFBundleVersion (701)

We had previously uploaded two iOS binary builds for approval for a new version [7.2.0] but never released them:

CFBundleShortVersionString (7.2.0)
CFBundleVersion (720 and 721)
 
Now I want to finally release a new version with a new build:

CFBundleShortVersionString (7.2.0)
CFBundleVersion (722)

But when I try to validate the new binary for upload I'm getting this error:

"This bundle is invalid. The value for the key CFBundleShortVersionString [7.2.0] in the Info.plist file must contain a higher version than that of the previously approved version [701]"
 
Why is the validation process trying to compare the new CFBundleShortVersionString (7.2.0) to the old CFBundleVersion (701) rather than comparing old CFBundleVersion (701) with the new CFBundleVersion (722)? Or is that just a poorly worded error and its saying something else?

I posted this as a support case and this was the response I got - as you can see it has absolutely nothing to do with my question:

Starting with iOS 10, purpose strings are required for access to any protected class of data from within your app, including usage of those protected data classes by any third-party library your app uses. If you're receiving a message about a missing purpose string for a data class that you don't recognize, consult with your third-party library vendors about their usage of that protected data class.

So, how do I get past this bad version comparison check?

Replies

As I understand it, both the CFBundleVersion and the CFBundleShortVersionString need to be higher than anything that has been uploaded previously.

If you previously uploaded CFBundleShortVersionString (7.2.0), then the new CFBundleShortVersionString will have to be greater than that.

It's possible to upload multiple builds for a release, but you never released 7.2.0
I've always done this in the past.

For example, when 7.0.0 (current release) was approved I had uploaded CFBundleVersion 700, which was rejected for an issue, then I uploaded CFBundleVersion 701 with CFBundleShortVersionString still at 7.0.0 and that was reviewed and approved (and is what's on the store now).

But, just to be sure, I just tried setting CFBundleShortVersionString to 7.3.0 and CFBundleVersion to 730 and I'm still getting the same error:

"This bundle is invalid. The value for the key CFBundleShortVersionString [7.3.0] in the Info.plist file must contain a higher version than that of the previously approved version [701]"

It's like the upload validator is confusing those two settings. I'm totally baffled.

I've also since gotten a second response from Apple Support quoting the exact same "purpose strings" paragraph that I showed above. It's like they aren't actually even reading my issue post.