ITMS-90208: Invalid bundle — versione minima di iOS
Un framework dichiara un iOS minimo più vecchio del suo binario.
Che cos'è ITMS-90208?
Il rifiuto di Apple quando un framework dentro l'app dichiara, nel proprio Info.plist, un iOS minimo più vecchio di quello per cui è compilato il suo binario. Prima di Flutter 3.41 di solito era App.framework, il cui Info.plist veniva copiato da ios/Flutter/AppFrameworkInfo.plist e conservava un vecchio MinimumOSVersion. Dalla 3.41 la build scrive quella chiave da sola, quindi aggiornare Flutter risolve; con una versione precedente, impostatela lì alla versione per cui è compilato il binario.
Da dove arriva in un'app Flutter
Ogni framework nell'app ha il proprio Info.plist, e App Store Connect rifiuta il caricamento quando uno dichiara un iOS minimo più vecchio di quello per cui è compilato il suo binario. Prima di Flutter 3.41 di solito era App.framework: il suo Info.plist veniva copiato da ios/Flutter/AppFrameworkInfo.plist, il cui MinimumOSVersion restava quello messo dal template del progetto. Dalla 3.41 la build scrive quella chiave da sola e toglie la vecchia dal file. Un plugin distribuito come framework può avere la stessa discrepanza.
Come risolverlo
- Eseguite il controllo gratuito della build sull'.ipa. Indica il framework ed entrambe le versioni.
- Per
App.frameworkaggiornate Flutter alla 3.41 o successiva. Se non potete ancora, impostateMinimumOSVersioninios/Flutter/AppFrameworkInfo.plistalla versione per cui è compilato il binario. - Per il framework di un plugin, aggiornate il plugin a una versione il cui framework dichiari la versione corretta.
- Eseguite
flutter cleane ricompilate.
Il controllo gratuito della build legge il vostro .ipa nel browser e indica la causa di questo e degli altri rifiuti, senza caricare nulla.
Oppure fate verificare l'intera build: la verifica degli store costa 190 €, 2 giorni lavorativi.