checkApp

Store

ITMS-90683: Missing purpose string in Info.plist

Risorsa protetta senza motivazione in Info.plist.

Che cos'è ITMS-90683?

Il rifiuto di Apple per un build che può accedere a fotocamera, posizione, contatti o un'altra risorsa protetta senza una frase nell'Info.plist che spieghi perché. Dipende dal binario, non da ciò che l'app fa: un plugin che include la fotocamera porta con sé l'obbligo anche se la fotocamera non si apre mai, e così un build che funziona sul telefono non arriva mai a TestFlight. Indichiamo la chiave e il plugin che la richiede.

Da dove arriva in un'app Flutter

App Store Connect cerca in ogni binario i framework per fotocamera, foto, posizione, contatti, Bluetooth e altre risorse protette, che l'app li chieda o no. In un'app Flutter di solito li porta un plugin: image_picker fotocamera e libreria foto, geolocator la posizione, camera e mobile_scanner la fotocamera. permission_handler installato con CocoaPods include un'autorizzazione solo se la sua macro PERMISSION_… in ios/Podfile vale 1; con Swift Package Manager, solo se la sua chiave è già in Info.plist.

Come risolverlo

  1. Eseguite il controllo gratuito della build sull'.ipa. Indica la chiave mancante e il plugin che la richiede.
  2. Se l'app usa quella risorsa, aggiungete la chiave in ios/Runner/Info.plist con una frase che dica a cosa serve.
  3. Se non la usa, rimuovete il plugin oppure, per permission_handler, impostate a 0 la macro di quell'autorizzazione.
  4. Una traduzione in InfoPlist.strings non sostituisce la chiave nell'Info.plist stesso.

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.

Tutti i codici di rifiuto