checkApp

Stores

ITMS-90208: Invalid bundle — minimum OS version

A framework declares an older minimum iOS than its binary.

What is ITMS-90208?

Apple's refusal when a framework inside the app declares, in its own Info.plist, an older minimum iOS than its binary was built for. Before Flutter 3.41 the usual one was App.framework, whose Info.plist was copied from ios/Flutter/AppFrameworkInfo.plist and kept an old MinimumOSVersion. Since 3.41 the build writes that key itself, so updating Flutter fixes it; on an older version, set it there to the version the binary was built for.

Where it comes from in a Flutter app

Each framework in the app has its own Info.plist, and App Store Connect refuses the upload when one declares an older minimum iOS than its binary was built for. Before Flutter 3.41 the usual one was App.framework: its Info.plist was copied from ios/Flutter/AppFrameworkInfo.plist, whose MinimumOSVersion stayed where the project template had put it. Since 3.41 the build writes that key itself and removes the old one from the file. A plugin shipped as a framework can have the same mismatch.

How to fix it

  1. Run the free build check on the .ipa. It names the framework and both versions.
  2. For App.framework, update Flutter to 3.41 or later. If you cannot yet, set MinimumOSVersion in ios/Flutter/AppFrameworkInfo.plist to the version the binary was built for.
  3. For a plugin's framework, update the plugin to a release whose framework declares the version it was built for.
  4. Run flutter clean and build again.

The free build check reads your .ipa in the browser and names the cause of this and the other rejections, without uploading anything.

Or have the whole build checked: the store readiness audit is €190, 2 working days.

All rejection codes