Skip to content

App Store Connect upload errorITMS-90062: the version must be higher than the approved one

ITMS-90062 is the App Store Connect upload error for a build whose version number isn’t higher than the last approved version. Apple reads that number from CFBundleShortVersionString. Raise it, for example from 1.2.0 to 1.2.1, and upload a new build.

Short answer

Read the approved version in the error message and go above it. Set the new version in the part before + in a Flutter pubspec, or in Marketing Version in a native Xcode project, raise the build number too, and archive again. In App Store Connect, create the new version with the same number.

Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

Why the version is rejected, and the fix

  1. 01

    The version was already approved

    “In the New Version dialog, enter an incremental App Store version number, then click Create.” App Store Connect Help, Create a new version

    Once a version has been approved, every later upload needs a higher one. Pick the next number, such as 1.2.1, and use it in Xcode and in App Store Connect.

  2. 02

    The version string format also matters

    “The required format is three period-separated integers, such as 10.14.1. The string can only contain numeric characters (0-9) and periods.” Apple Developer, CFBundleShortVersionString

    Apple compares the numbers in order, so 1.10.0 is higher than 1.9.0, not lower. Letters, a v prefix or a suffix such as -beta don’t belong in this field and cause upload errors of their own.

  3. 03

    Flutter or CI sets the version, not Xcode

    “In iOS, build-name uses CFBundleShortVersionString while build-number uses CFBundleVersion.” Flutter docs, Build and release an iOS app

    In a Flutter app the pubspec version feeds both numbers, so a change made only in Xcode is overwritten on the next build. Raise it in pubspec.yaml, or pass it on the build command in CI.

    # pubspec.yaml: version is build-name, after + is build-number
    version: 1.2.1+42
    
    # or set both on the command line
    flutter build ipa --build-name=1.2.1 --build-number=42
  4. 04

    A native project has a typed-in number

    In a native iOS project, a fixed value in Info.plist means Xcode’s Marketing Version setting never reaches the build. Point the keys at the build settings below. In a Flutter project, use $(FLUTTER_BUILD_NAME) and $(FLUTTER_BUILD_NUMBER) instead, so the pubspec version reaches the build.

    <key>CFBundleShortVersionString</key>
    <string>$(MARKETING_VERSION)</string>
    <key>CFBundleVersion</key>
    <string>$(CURRENT_PROJECT_VERSION)</string>
  5. 05

    Raise the build number as well

    “In Xcode, increment the build string before you upload your build to App Store Connect, as described in Set the version number and build string.” App Store Connect Help, Create a new version

    The build number is separate from the version. A new version can restart it, but uploading the same version again needs a new build number, so raising both avoids a second rejection.

Checked against the vendor’s docs on : Apple Developer: CFBundleShortVersionString; Apple Developer: CFBundleVersion; App Store Connect Help: Create a new version; Flutter docs: Build and release an iOS app.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Resubmit before Apple’s holiday slowdown

Pay for the Diagnosis and send the rejection and access to the app by (US Eastern). The Diagnosis is back by . Pay for the Fix that day and it arrives as a pull request by , in time to build and resubmit before .

In past years Apple said reviews may take longer around the holidays: December 20 to 26 in 2024 (opens in a new tab), December 22 to 27 in 2023 (opens in a new tab), December 23 to 27 in 2022 (opens in a new tab). Apple hasn’t posted its 2026 dates yet (checked ). Approval stays Apple’s decision.

“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
A buyer in the United States, July 2022. Shopify on Fiverr
All 127 Fiverr reviews

Related: ITMS-90725 SDK version issue · ITMS-91053 Missing API declaration · Xcode provisioning profile invalid or expired · ITMS-91061 missing privacy manifest

Questions

More on this rejection

Can I reuse a version number that was rejected?

Yes, if that version was never approved. Upload it again with a higher build number. If you aren’t sure which number was approved last, check the app’s version history in App Store Connect.

Does the version in App Store Connect have to match the build?

Yes. Create the App Store version with the same number as CFBundleShortVersionString in the build, then add the build to that version before you submit.

Can you fix it for me?

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.