checkApp

App Store o Google Play ha rifiutato la vostra build?

Trascinate l'.ipa, l'.apk o l'.aab nel controllo gratuito e vedete nel browser che cosa rifiuterebbero gli store. Se preferite che lo facciamo noi, la verifica degli store confronta anche i moduli della scheda con la build.

190 € · 2 giorni lavorativi se preferite che lo facciamo noi

Codici di rifiuto

CodiceChe cosa significa
ITMS-91053API con motivazione obbligatoria usata senza dichiararla
ITMS-90683Risorsa protetta senza motivazione in Info.plist
90068iOS minimo sotto 15: oggi un avviso, rifiuto dalla primavera 2027
ITMS-90208Un framework dichiara un iOS minimo più vecchio del suo binario
ITMS-90809Un riferimento al deprecato UIWebView
ITMS-90685Due bundle nell'app con lo stesso identificatore
Che cos'è ITMS-91053?
Il rifiuto di Apple per una API con motivazione obbligatoria chiamata senza che il privacy manifest ne dichiari il motivo. Arriva al caricamento, elenca le API trovate, e non c'è nessun build di avviso prima. L'audit di idoneità agli store riguarda soprattutto questa classe di problemi. Come risolverlo
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. Come risolverlo
Che cosa significa l'avviso 90068?
App Store Connect lo invia quando la MinimumOSVersion di un'app è inferiore a iOS 15. Oggi il build viene comunque consegnato e l'avviso arriva per email; dalla primavera 2027 il caricamento viene rifiutato. Un progetto Flutter porta 13.0 finché qualcuno non lo cambia, quindi capita a quasi tutti senza aver sbagliato nulla. Come risolverlo
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. Come risolverlo
Che cos'è ITMS-90809?
Il rifiuto di Apple per qualsiasi riferimento a UIWebView. Le nuove app sono rifiutate da aprile 2020 e gli aggiornamenti da dicembre 2020. Basta un riferimento, anche se nessuna vista web viene mai mostrata; arriva quasi sempre da un vecchio SDK, e aggiornarlo o rimuoverlo è la soluzione. Come risolverlo
Che cos'è ITMS-90685?
Il rifiuto di Apple quando due bundle dentro l'app hanno lo stesso CFBundleIdentifier: di solito un'estensione con l'identificatore dell'app stessa, o un framework incorporato nell'app e di nuovo in un'estensione. Date a ogni estensione un identificatore proprio sotto quello dell'app e incorporate ogni framework una sola volta. Come risolverlo

Tenuto aggiornato

Scadenze di App Store e Google Play, 2026–2027

Entrambi gli store alzano i requisiti ogni anno, e una checklist scritta l'anno scorso smette silenziosamente di essere una checklist. Questo è ciò che vale oggi. La data qui sotto dice quando è stato confrontato l'ultima volta con quanto Apple e Google pubblicano davvero.

RequisitoChe cosa succedeDa
Privacy manifest, API con motivazione obbligatoriaCaricamento rifiutatoIn vigore
Motivazioni per fotocamera, posizione, contattiCaricamento rifiutatoIn vigore
Cancellazione dell'account nell'appRespinta in revisioneIn vigore
Accedi con Apple accanto al login di terze partiRespinta in revisioneIn vigore
Google Play: API 36 per gli aggiornamenti, 35 per restare in elencoAggiornamento rifiutato, app nascosta31/08/2026
Play Billing Library 8Nuove app e aggiornamenti rifiutati31/08/2026
Google Play: dichiarazione per la posizione precisaDichiarazione obbligatoria27/01/2027
Librerie native su pagine di memoria da 16 KBAggiornamento rifiutato01/02/2027
MinimumOSVersion 15.0Ora avviso 90068, poi rifiutoPrimavera 2027
SDK iOS 27 per i caricamentiCaricamento rifiutatoAprile 2027

Ultimo confronto con i requisiti pubblicati da Apple e Google il 16 settembre 2026. Quando un livello si alza, si alzano anche i controlli, e ogni relazione dice quali controlli sono stati eseguiti e quali no.

Che cosa controlla la verifica degli store

  • Un privacy manifest assente, o un SDK distribuito senza
  • API con motivazione obbligatoria chiamate senza dichiararla — il rifiuto ITMS-91053, che arriva senza preavviso
  • Un plugin che usa fotocamera, posizione o contatti senza …UsageDescription nell'Info.plist — ITMS-90683, che ferma il caricamento prima di TestFlight, spesso per una funzione che l'app non usa affatto
  • Un'icona dell'App Store con trasparenza, un framework che dichiara la versione minima di iOS sbagliata (ITMS-90208), o nessuna risposta sulla crittografia, che lascia ogni build in attesa come Missing Compliance
  • Un plugin che si registra alle notifiche push senza l'entitlement, così le notifiche non arrivano mai, un riferimento a UIWebView (ITMS-90809) o due bundle con lo stesso identificatore (ITMS-90685)
  • Un accesso di terze parti senza un'alternativa equivalente accanto (Linea guida 4.8)
  • Nessun modo di cancellare l'account dall'interno dell'app (Linea guida 5.1.1(v) e la policy di cancellazione dei dati di Google, che ne chiede anche una fuori dall'app)
  • Un target API level che Google Play non accetta più
  • Librerie native che non si caricano con pagine di memoria da 16 KB — dal 1 febbraio 2027 Google Play non pubblica più aggiornamenti così, e di solito la causa sono plugin con codice precompilato
  • Una release firmata con la chiave di debug, un build debuggable o una Play Billing Library precedente alla versione 8
  • Autorizzazioni che Google Play concede solo ad alcuni tipi di app — posizione in background, foto e video, tutte le app installate, tutti i file — e quelle da dichiarare, tra cui la posizione precisa dal 27 gennaio 2027
  • Un'etichetta privacy o un modulo Data safety che dichiara meno di quanto faccia il build
  • Un URL di assistenza o di privacy nella scheda che non risponde più

Le norme e le regole degli store secondo cui verifichiamo

App Store Review Guidelines
4.8 · 5.1.1(v) · 1.5, e i motivi di rifiuto in revisione
PrivacyInfo.xcprivacy
obbligatorio dal 1 maggio 2024 — il file dietro ITMS-91053
MinimumOSVersion
oggi avviso 90068, rifiuto dalla primavera 2027
SDK iOS 27
obbligatorio per i caricamenti da aprile 2027
Play target API level
36 dal 31 agosto 2026 · 35 per restare in elenco
Play Data safety
e cancellazione dell'account nell'app

Mandate un build. Ricevete la relazione per email.

Che cosa si può verificare da ciascun formato
Che cosa mandateControlli storeAccessibilità
.apk — AndroidCompletoCompleto
.app — build iOS per simulatoreCompletoCompleto
.ipa — build iOS per dispositivoCompletoNon possibile
Invito TestFlightCompletoA mano, +60%

Prezzo

La verifica degli store costa 190 €, 2 giorni lavorativi. Per un singolo rifiuto, o una domanda prima di sviluppare, una consulenza costa 90 €/ora.

Richiedi un audit

Mandate una build per email. Ricevete prezzo fisso e data.

Scrivete a hello@checkapp.dev con la build, o un link, e una riga su che cosa vi serve: audit di accessibilità, verifica degli store o entrambi. Prezzo fisso e data tornano indietro nella stessa giornata lavorativa.