Linee guida per la revisione dell'App Store per IAP
Copia un suggerimento di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Per ottenere l'approvazione del tuo'applicazione sullo Store App è necessario prestare molta attenzione alle linee guida di Apple, soprattutto quando si implementano le compravendite e le sottoscrizioni all'interno dell'applicazione. Questa guida copre tutto ciò di cui hai bisogno per superare la revisione alla tua prima sottoscrizione.

Prima di Invio
Sezione intitolata “Prima di Invio”Completa la configurazione di App Store Connect
Sezione intitolata “Completa la configurazione di App Store Connect”Prima che Apple esamini il tuo flusso di acquisto, assicurati che il record dell'applicazione stesso sia completo:
- Aggiungi un URL della politica sulla privacy in App Store Connect
- Aggiungi un URL del supporto che porta a informazioni di contatto reali per gli utenti
- Completa il valutazione di età valutazione di età
- questionario per rendere l'app pubblicabile Aggiungi Dettagli di contatto per la recensione dell'app
- e note chiare per i recensori account di demo che non scade durante la revisione
Preparare Screenshot Realistici
Sottosezione intitolata “Preparare Screenshot Realistici”- Utilizza screenshot correnti dal build reale in revisione
- Per iPhone
1290 x 2796(6,7 pollici) è la dimensione di default più facile da utilizzare - Se la tua app funziona su iPad, carica anche screenshot di iPad
- Le dimensioni di iPad accettate includono
2064 x 2752(13 pollici)2048 x 2732(12,9 pollici) - Non allungare mai lo screenshot dell'iPhone per fingere il supporto all'iPad
Eseguire il percorso del revisore in TestFlight in modalità di prova
Sezione intitolata “Eseguire il percorso del revisore in TestFlight in modalità di prova”Eseguire il percorso esatto che Apple seguirà su un dispositivo reale:
- Installa l'ultima versione da TestFlight
- Accedi con il conto di recensione che intendi fornire
- Raggiungi la paywall senza gesti nascosti o menu di debug
- Completa le flussi di acquisto, ripristino e gestione abbonamento
- Verifica che l'app si comporti correttamente anche se vengono negati i permessi
Requisiti per le Vendite in App
Sezione intitolata “Requisiti di acquisto in-app”Pricing Transparency (Critico)
Sezione intitolata “Transparenza dei prezzi (Critico)”L'Apple richiede una chiara trasparenza dei prezzi prima di qualsiasi acquisto:
Elementi obbligatori:
- Mostra il prezzo esatto prima del pulsante di acquisto
- Mostra la frequenza di fatturazione (ad esempio “$9.99/mese”)
- Stabilisci chiaramente cosa gli utenti ottengono per il loro denaro
- Indica quando si verificheranno le addebitazioni
Rifiuto comune:
“Il prezzo delle sottoscrizioni deve essere chiaro e immediato.”
:::avvertenza Coerenza dei prezzi Tutti i prezzi devono corrispondere in:
- Metadata di lista dell'App Store
- Pantalla di acquisto in-app
- Pantalla di gestione delle sottoscrizioni
Even una disparità di $1 tra la lista del negozio ($4.99) e l'app ($5.99) attiverà la rifiutazione automatica.
Presentazione del piano di sottoscrizione
Sottosezione intitolata “Presentazione del piano di sottoscrizione”Disclosures richieste:
- Tutti i piani di sottoscrizione disponibili visualizzati insieme
- Comparazione chiara delle caratteristiche per livello
- Nessuna impostazione automatica dei livelli premium attraverso trucchi di interfaccia utente
- Istruzioni di cancellazione facili da trovare

Esempio di interfaccia conforme:
import { NativePurchases } from '@capgo/native-purchases';
function SubscriptionScreen() { return ( <div> <h2>Choose Your Plan</h2>
{/* Show all tiers equally */} <PlanCard title="Basic" price="$4.99/month" features={['Feature A', 'Feature B']} /> <PlanCard title="Premium" price="$9.99/month" features={['All Basic', 'Feature C', 'Feature D']} highlighted={false} // Don't force premium />
{/* Clear cancellation info */} <Text> Cancel anytime in Settings > Subscriptions. No refunds for partial periods. </Text> </div> );}Ripristina acquisti
Sottosezione intitolata “Ripristina acquisti”Esecuzione richiesta:
Tutti gli app con IAP devono fornire un modo per gli utenti per ripristinare gli acquisti precedenti senza contattare il supporto.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function restorePurchases() { try { await NativePurchases.restorePurchases();
const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, });
const activeSub = purchases.find( (purchase) => purchase.isActive && purchase.expirationDate, );
if (activeSub) { unlockPremiumFeatures(); showMessage('Purchases restored successfully!'); return; }
const { purchases: iaps } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.INAPP, }); const hasIap = iaps.some((purchase) => purchase.productIdentifier === 'premium_unlock');
showMessage( hasIap ? 'Premium purchase restored!' : 'No previous purchases found.', ); } catch (error) { showError('Failed to restore purchases. Please try again.'); }}
// Add a visible "Restore Purchases" button<Button onClick={restorePurchases}> Restore Purchases</Button>Motivi di rifiuto comuni
Sottosezione intitolata “Motivi di rifiuto comuni”1. App Crashes o Funzionalità Rotte
Sottosezione intitolata “1. App Crashes o Funzionalità Rotte”Perché Fallisce:
- La applicazione si blocca al lancio
- La flussi di acquisto non riesce a completarsi
- Le funzionalità mostrate nelle schermate non funzionano
Prevenzione:
- Testa le applicazioni su dispositivi reali (non solo simulatori)
- Testa tutti i flussi di abbonamento da inizio a fine
- Verifica che la validazione del ricevuto funzioni
- Controlla il trattamento degli errori di rete
2. Mancos di Metadati
Sottosezione intitolata "2. Mancos di Metadati"Perché Fallisce:
- Le screenshot mostra funzionalità non presenti nella versione corrente
- La descrizione menziona funzionalità che non esistono
- Il prezzo nei metadati è diverso da quello in-app

Prevenzione:
// Document exactly what's in each tierconst SUBSCRIPTION_FEATURES = { basic: ['Ad-free', 'Cloud sync', 'Basic themes'], premium: ['Ad-free', 'Cloud sync', 'All themes', 'Priority support']};
// Use these in both your app AND App Store description3. Spiegazioni mancanti di autorizzazione
Sezione intitolata “3. Spiegazioni mancanti di autorizzazione”Perché fallisce:
- Richiesta di autorizzazione per la camera/ubicazione/salute senza spiegazione
- Richieste di autorizzazione nascoste a più schermate di distanza
- Descrizioni di autorizzazione vaghe o generiche
Prevenzione:
Aggiorna il tuo Info.plist con spiegazioni chiare:
<key>NSCameraUsageDescription</key><string>Camera access is needed to scan product barcodes for quick subscription upgrades.</string>
<key>NSLocationWhenInUseUsageDescription</key><string>Location helps us show relevant local content in your Premium subscription.</string>4. Marketing ingannevole
Sottosezione intitolata “4. Marketing ingannevole”Perché Fallisce:
- Affermazioni come “l'app più popolare al mondo” senza prove
- “Caratteristiche illimitate” che hanno limiti nascosti
- Tattiche di urgenza false (“Solo 2 posti disponibili!”)


Prevenzione:
- Sii specifico e basato sui fatti nella descrizione
- Evita superlativi senza prove
- Non costringere gli utenti con una falsa scarsità
5. Procedura di cancellazione nascosta
Sezione intitolata “5. Procedura di cancellazione nascosta”Perché fallisce:
- Assenza di menzione su come cancellare
- Bottoni di cancellazione nascosti o oscurati
- Procedura di cancellazione a più passaggi senza il flusso nativo di Apple
Prevenzione:
// Always inform users about cancellationfunction SubscriptionInfo() { return ( <div> <h3>How to Cancel</h3> <ol> <li>Open iPhone Settings</li> <li>Tap your name at the top</li> <li>Tap Subscriptions</li> <li>Select this app and tap Cancel</li> </ol>
<p>Or manage directly in the App Store app.</p>
<Button onClick={openSubscriptionManagement}> Manage Subscription in Settings </Button> </div> );}
async function openSubscriptionManagement() { // Direct link to iOS subscription management await NativePurchases.showManageSubscriptions();}Privacy & Utilizzo dei dati (Sezione 5.1.1)
Sezione intitolata “Privacy & Utilizzo dei dati (Sezione 5.1.1)”Apple ha rafforzato significativamente le norme sulla privacy nel 2025.
Dichiarazioni obbligatorie
Sezione intitolata “Dichiarazioni obbligatorie”Per ogni autorizzazione:
- Perché ce ne serve (caso d'uso specifico)
- Quando verrà utilizzato
- Come viene memorizzato e condiviso i dati
- Se è facoltativo o obbligatorio
Esempio: Flusso di autorizzazione corretto
Sottosezione intitolata “Esempio: Flusso di autorizzazione corretto”async function requestCameraPermission() { // Show explanation BEFORE requesting await showDialog({ title: 'Camera Access', message: 'We need camera access to let you scan barcodes for quick product lookup. Your photos are never uploaded or stored.', buttons: ['Not Now', 'Allow'] });
// Then request permission const result = await Camera.requestPermissions(); return result.camera === 'granted';}Etichette di nutrizione sulla privacy
Sottosezione intitolata “Etichette di nutrizione sulla privacy”Assicurati che le etichette sulla privacy di App Store siano accurate e riflettano:
- La raccolta dei dati di acquisto
- Gli indirizzi e-mail (per le ricevute)
- ID dei dispositivi (per la prevenzione dei frodi)
- I dati di utilizzo (per gli analisi)
Le etichette sulla privacy inesatte sono una delle principali ragioni di rifiuto nel 2025. Verifica con cura la raccolta dei dati.
Elenco di controllo pre-invio
Elenco dei controlli da effettuare prima della sottoscrizione
-
Testa tutti i flussi di acquisto
- Acquista ogni livello di sottoscrizione
- Testa le prove gratuite
- Verifica che le offerte introduttive siano applicate correttamente
- Testa il ripristino degli acquisti
- Verifica la condivisione della famiglia (se abilitata)
- Testa su più dispositivi
-
Verifica la coerenza dei prezzi
- Controlla che i metadati dell'App Store corrispondano ai prezzi in-app
- Verifica che tutti i valori di valuta siano corretti
- Conferma le durate dei periodi di prova gratuiti corrispondono alle descrizioni
- Verifica che i termini degli offerti introduttivi siano precisi
-
Rivista Tutta la Documentazione
- Elimina il testo di placeholder
- Verifica che le affermazioni siano testabili
- Verifica la grammatica e l'ortografia
- Assicurati che le descrizioni corrispondano alla versione corrente
- Elimina le menzioni dei concorrenti
-
Testa le Autorizzazioni
- Richiedi solo le autorizzazioni necessarie
- Mostra spiegazioni chiare prima di richiederle
- Testa i flussi di "Rifiuta" (l'applicazione dovrebbe funzionare comunque)
- Verifica le descrizioni di Info.plist siano chiare
-
Prepara un account di prova
- Creare un account di recensione che rimane valido durante la revisione
- Documenta le credenziali di accesso nella sezione Informazioni sulla recensione
- Verifica che il recensore possa raggiungere la paywall e completare il flusso di acquisto
- Includi eventuali conti aggiuntivi o interfacce di app specifiche nel campo Note se necessario
-
Verifica i metadati
- I screenshot corrispondono all'interfaccia attuale
- L'URL del supporto include informazioni di contatto reali
- L'URL della politica sulla privacy è compilato
- L'etichetta di età corrisponde al contenuto presente nella build
- La videoanteprima dell'app (se presente) mostra la versione corrente
- Descrizione fornisce una descrizione dettagliata delle funzionalità
- La politica sulla privacy è accessibile all'interno dell'app e dalla lista dell'app Store
-
Scrivi Note di Recensione Dettagliata
Contact:Name: Jane DeveloperEmail: review@yourapp.comPhone: +1 555-0100Test Account:Email: reviewer@test.comPassword: TestPass123!This account does not expire during review.Testing Instructions:1. Log in with test account above2. Tap "Upgrade to Premium" button3. Select "Monthly Premium" subscription4. Complete purchase (no charge in sandbox)5. Verify premium features unlockNote: Subscription pricing is clearly shown before purchase.Cancellation instructions are in Settings > Account.
Timeline della Recensione
Sezione intitolata “Timeline della Recensione”
Revisione Standard: 24-48 ore Periodi di Picco: 3-5 giorni (rilevamenti dell'app Store durante le festività) Weekend: No recensioni elaborate Revisione accelerata: Disponibile per correzioni di bug critici (richiedi tramite App Store Connect)
Stati comuni che vedrai in App Store Connect:
Waiting for ReviewIn ReviewPending Developer ReleaseRejected
Focalizzazione sulla sottoscrizione 2026
Sottosezione intitolata “Focalizzazione sulla sottoscrizione 2026”Aree di attenzione correnti
Sottosezione intitolata “Aree di attenzione correnti”1. Chiarezza sulla sottoscrizione
- Confronto dei piani a lato richiesto
- Nessun "modello oscuro" che nasconda opzioni più economiche
- Percorsi di downgrade/upgrade chiari
2. Precisione dei metadati
- Le schermate devono corrispondere alla build in esame
- Le schermate per iPad sono richieste se è abilitata la supportazione dell'iPad
- L'URL di supporto e la politica sulla privacy dovrebbero già essere attivi prima della sottoscrizione
3. Qualità dei dettagli sulla privacy e della recensione
- Le dichiarazioni sulla privacy devono corrispondere a ciò che i propri SDK raccolgono effettivamente
- L'informazione di contatto per la recensione e le note dovrebbero essere complete nella prima sottoscrizione
- I credenziali di demo devono rimanere valide per tutta la finestra di revisione
4. Prontezza della sottoscrizione
- Aggiorna regolarmente le SDK minime richieste da Apple, quindi conferma la scadenza attuale prima di caricare un rilascio di build
- TestFlight è il luogo più sicuro per verificare il percorso di revisione esatto prima di inviare
Pratiche Migliori per Plugin di Acquisto Nativo
Sottosezione intitolata “Pratiche Migliori per Plugin di Acquisto Nativo”Implementare un Gestione degli Errori Adeguata
Sottosezione intitolata “Implementare un Gestione degli Errori Adeguata”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function handlePurchase(productId: string) { try { const transaction = await NativePurchases.purchaseProduct({ productIdentifier: productId, productType: PURCHASE_TYPE.SUBS, });
// Success await validateReceiptOnServer(transaction.receipt); showSuccess('Subscription activated!'); unlockFeatures();
} catch (error: any) { // Handle specific error cases if (error.code === 'USER_CANCELLED') { // User cancelled - don't show error console.log('Purchase cancelled by user'); } else if (error.code === 'PAYMENT_PENDING') { showInfo('Payment is pending. Please check back later.'); } else if (error.code === 'PRODUCT_ALREADY_PURCHASED') { // Restore instead await NativePurchases.restorePurchases(); } else { // Show user-friendly error showError('Unable to complete purchase. Please try again.'); } }}Visualizza Stati di Caricamento
Sottosezione intitolata “Visualizza Stati di Caricamento”function PurchaseButton({ productId }: { productId: string }) { const [loading, setLoading] = useState(false);
const handlePurchase = async () => { setLoading(true); try { await NativePurchases.purchaseProduct({ productIdentifier: productId }); } finally { setLoading(false); } };
return ( <button onClick={handlePurchase} disabled={loading}> {loading ? 'Processing...' : 'Subscribe Now'} </button> );}Mostra Chiaramente le Condizioni
Sottosezione intitolata “Mostra Chiaramente le Condizioni”function SubscriptionTerms() { return ( <div className="terms"> <p> Subscription automatically renews unless cancelled at least 24 hours before the end of the current period. </p> <p> Your account will be charged for renewal within 24 hours prior to the end of the current period. </p> <p> Subscriptions may be managed by the user and auto-renewal may be turned off in Account Settings after purchase. </p> <p> <a href="/terms">Terms of Service</a> | <a href="/privacy/">Privacy Policy</a> </p> </div> );}Se la tua App viene rifiutata
Sezione intitolata “Se la tua App viene rifiutata”Passaggi per la risoluzione
Sezione intitolata “Passaggi per la risoluzione”-
Leggi attentamente la motivazione del rifiuto
- Nota la specifica norma citata (ad esempio, 3.1.1, 5.1.1)
- Capisci esattamente cosa Apple ha segnalato
-
Risolve il problema in modo approfondito
- Non si tratta solo di patch - risolvi la causa radice
- Testa estensivamente la soluzione
- Documenta le modifiche apportate
-
Rispondi nel Centro Risoluzione
Thank you for your feedback. I have addressed the issue:Issue: Subscription pricing not clear upfrontFix: Added explicit pricing display on subscription selectionscreen showing "$9.99/month" before purchase button. Also addedcancellation instructions on the same screen.The changes are in this submission and can be tested using theprovided test account. -
Risubmetti prontamente
- Le risubmissioni vengono solitamente esaminate più velocemente
- Di solito entro 24 ore
Procedura di Appello
Sottosezione intitolata “Procedura di Appello”Se ritiene che la rifiutazione sia errata:

- Clicca su “Appello” in App Store Connect
- Fornisci prove chiare:
- Schermate che mostrano la conformità
- Riferimenti a specifiche linee guida
- Spiegazione su come soddisfare le richieste
- Sii professionale e fattuale
- Includi un account di prova se la funzionalità è difficile da trovare

Risorse aggiuntive
Sottosezione intitolata “Risorse aggiuntive”- Linee guida di revisione dell'App Store di Apple
- Linee guida per acquisti in-app
- Pratiche migliori per le sottoscrizioni
- Aiuto per App Store Connect
- Specifiche per le schermate di screenshot
- Informazioni sulla versione della piattaforma
Sostegno
SostegnoSostegno
- Se hai ancora problemi: La documentazione sulla compravendita nativa
- Controlla I problemi di risoluzione comuni
- Contatta il supporto dello sviluppatore Apple per chiarimenti sulle linee guida
Hai bisogno di aiuto esperto?
Sostegno espertoStai lottando con la revisione dell'applicazione o hai bisogno di assistenza personalizzata? Prendi un appuntamento di consultazione con il nostro team per un supporto dedicato con:
- IAP implementation review and optimization
- Preparazione e strategia per la revisione dell'App Store
- Revisione della lista di controllo di sottoscrizione
- Risoluzione delle rimostranze e delle ricusazioni
- Test e validazione completi
I nostri esperti hanno già aiutato con successo centinaia di app a superare la revisione!
Continua da iOS App Store Review Guidelines per IAP
Sezione intitolata “Continua da iOS App Store Review Guidelines per IAP”Se stai utilizzando iOS App Store Review Guidelines per IAP per pianificare l'approvazione e la distribuzione della store, connettilo con Utilizzare @capgo/native-purchases per la capacità nativa in Utilizzare @capgo/native-purchases @capgo/capacitor-recensione-in-app per il dettaglio di implementazione in @capgo/capacitor-recensione-in-app Utilizzare @capgo/capacitor-recensione-in-app per la capacità nativa in Utilizzare @capgo/capacitor-recensione-in-app @capgo/capacitor-mercato-nativo per il dettaglio di implementazione in @capgo/capacitor-mercato-nativo, e Utilizzare @capgo/capacitor-mercato-nativo per la capacità nativa in Utilizzare @capgo/capacitor-mercato-nativo