checkApp

Stores

ITMS-90208 : Invalid bundle — version minimale d'iOS

Un framework déclare un iOS minimum plus ancien que son binaire.

Que signifie le rejet ITMS-90208 ?

C'est le refus d'Apple quand un framework de l'app déclare, dans son propre Info.plist, un iOS minimum plus ancien que celui pour lequel son binaire a été compilé. Avant Flutter 3.41, le coupable habituel était App.framework, dont l'Info.plist était copié depuis ios/Flutter/AppFrameworkInfo.plist et gardait une ancienne MinimumOSVersion. Depuis la 3.41, le build écrit lui-même cette clé, et mettre Flutter à jour règle le problème ; sur une version plus ancienne, renseignez-y la version pour laquelle le binaire a été compilé.

D'où cela vient dans une app Flutter

Chaque framework de l'app a son propre Info.plist, et App Store Connect refuse l'envoi quand l'un d'eux déclare un iOS minimum plus ancien que celui pour lequel son binaire a été compilé. Avant Flutter 3.41, c'était le plus souvent App.framework : son Info.plist était copié depuis ios/Flutter/AppFrameworkInfo.plist, dont la MinimumOSVersion restait là où le modèle de projet l'avait fixée. Depuis la 3.41, le build écrit lui-même cette clé et retire l'ancienne du fichier. Un plugin distribué sous forme de framework peut présenter le même écart.

Comment corriger

  1. Lancez la vérification gratuite du build sur le .ipa. Elle nomme le framework et les deux versions.
  2. Pour App.framework, passez à Flutter 3.41 ou plus récent. Si ce n'est pas encore possible, réglez MinimumOSVersion dans ios/Flutter/AppFrameworkInfo.plist sur la version pour laquelle le binaire a été compilé.
  3. Pour le framework d'un plugin, mettez le plugin à jour vers une version dont le framework déclare la version pour laquelle il a été compilé.
  4. Lancez flutter clean et recompilez.

La vérification gratuite du build lit votre .ipa dans le navigateur et nomme la cause de ce rejet et des autres, sans rien envoyer.

Ou faites vérifier le build entier : l'audit de conformité aux stores coûte 190 €, en 2 jours ouvrés.

Tous les codes de rejet