RevenueCat: abbonamento in-app su iOS, guida passo passo
Di Mehdi Azizi
Aggiornato il , 7 min
RevenueCat collega i tuoi prodotti App Store Connect alla tua app e gestisce i diritti di accesso. Ecco i passaggi per attivare il tuo primo abbonamento iOS.
Perché usare RevenueCat invece del solo StoreKit
StoreKit, il framework di Apple, ti permette di vendere un abbonamento senza nessun servizio di terze parti. Ma per un principiante scrivere da solo tutta la logica di acquisto, ripristino e verifica dei diritti di accesso significa tanto codice da mantenere, con casi limite facili da dimenticare: cambio di dispositivo, scadenza, rimborso.
RevenueCat si mette tra App Store Connect e la tua app: legge i tuoi prodotti, gestisce gli abbonamenti attivi e ti evita di scrivere questo strato da solo. Mantieni il controllo su prezzo e offerte da una dashboard, senza ripubblicare l'app a ogni modifica.
Passo 1: crea i tuoi prodotti in App Store Connect
Prima di RevenueCat, i prodotti devono esistere lato Apple. In App Store Connect crea un gruppo di abbonamenti, poi uno o più livelli con la loro durata, per esempio mensile o annuale, e il loro prezzo per paese. Compila anche i testi mostrati all'utente per ogni livello: Apple li richiede prima di accettare il prodotto in revisione.
Una dimenticanza frequente in questa fase: un prodotto creato ma mai inviato alla prima revisione dell'app insieme alla sua versione. Un prodotto in attesa che non è mai stato incluso in un invio dell'app resta invisibile ai tuoi utenti, anche se RevenueCat lo vede già.
Passo 2: collega RevenueCat alla tua app
In RevenueCat crei un progetto, colleghi la tua chiave API di App Store Connect così che RevenueCat sincronizzi automaticamente i tuoi prodotti, poi definisci gli "entitlement", cioè i diritti di accesso. Un entitlement rappresenta ciò che l'abbonamento sblocca, per esempio l'accesso completo all'app, indipendentemente dal prodotto preciso che l'ha attivato.
Questo livello intermedio è utile: se in futuro cambi la struttura delle tue offerte, per esempio aggiungendo un livello annuale, ti basta collegare il nuovo prodotto allo stesso entitlement, senza toccare il codice che verifica l'accesso nella tua app.
Lato app, l'SDK RevenueCat per React Native si installa in un progetto Expo con un plugin dedicato, ed espone una funzione semplice per sapere se l'utente attuale ha un entitlement attivo.
Passo 3: costruisci il tuo paywall
Il paywall è la schermata che presenta l'offerta e avvia l'acquisto. RevenueCat offre paywall configurabili dalla dashboard, modificabili senza ripubblicare l'app, oppure puoi costruire il tuo con l'SDK se vuoi il pieno controllo sul design.
La posizione conta quanto il design. Un paywall mostrato prima che la persona abbia visto il valore dell'app di solito converte peggio di un paywall messo subito dopo una prima azione riuscita. La guida sugli errori di paywall iOS per principianti spiega le trappole più comuni in questa fase, oltre al semplice collegamento tecnico.
Passo 4: testa acquisto, ripristino e scadenza
È il passaggio più spesso fatto di fretta, eppure il più controllato da Apple. Tre scenari devono funzionare prima dell'invio:
L'acquisto. Con un account tester sandbox, l'acquisto deve sbloccare subito l'entitlement, e la tua app deve reagire a questo cambiamento senza bisogno di riavviarla.
Il ripristino. Su un nuovo dispositivo o dopo una reinstallazione, con lo stesso account Apple, un pulsante "Ripristina acquisti" deve ritrovare l'abbonamento attivo. Apple controlla sempre questo percorso in revisione, e la sua assenza o il suo malfunzionamento è un motivo di rifiuto frequente ai sensi della guideline 3.1.1.
La scadenza. In ambiente sandbox gli abbonamenti scadono in pochi minuti invece che in diversi mesi, così puoi verificare che l'accesso si chiuda correttamente a fine periodo, senza aspettare un vero ciclo di fatturazione.
Cosa RevenueCat non sostituisce
RevenueCat gestisce la meccanica dell'acquisto, non la conformità della tua scheda né del tuo paywall rispetto alla guideline 3.1.2. Tocca sempre a te descrivere correttamente l'abbonamento nella descrizione App Store, indicarne il prezzo esatto e la durata, e inserire i tuoi termini di utilizzo. La pagina abbonamento o acquisto singolo su iOS ti aiuta a scegliere il modello giusto ancora prima di arrivare a questa fase tecnica.
RevenueCat inoltre prende una commissione sui ricavi oltre una certa soglia mensile, in aggiunta alla commissione di Apple sugli abbonamenti venduti nell'app. Controlla le fasce attuali sul loro sito prima di costruire il tuo modello di business attorno a queste due commissioni.
Gli errori più frequenti di chi inizia
Dimenticare lo stato di caricamento. All'avvio, RevenueCat ha bisogno di un attimo per recuperare i diritti di accesso dell'utente. Se la tua app mostra di default il contenuto a pagamento prima di questa risposta, un utente senza abbonamento può vedere, per un istante, contenuti che non ha pagato. Prevedi uno stato di caricamento esplicito invece di una visualizzazione ottimista di default.
Verificare i diritti nel posto sbagliato. Un entitlement attivo va ricontrollato a ogni apertura di una schermata a pagamento, non solo una volta all'avvio. Se l'utente annulla o se il suo abbonamento scade mentre usa l'app, la schermata successiva deve riflettere il cambiamento.
Confondere ambiente sandbox e produzione. Gli identificativi dei prodotti e gli account tester sandbox sono distinti dalla produzione. Un test che funziona in sandbox con l'account Apple sbagliato, o un prodotto creato solo in produzione, può darti la falsa impressione che sia tutto pronto.
Un'app verificata, non solo un'app che compila
Un abbonamento che "funziona" in un test veloce sul tuo account non garantisce che regga a un ripristino su un altro dispositivo o a una scadenza reale. È proprio quello che controlla un reviewer Apple. La pagina abbonamento in-app iOS spiega tutta questa catena, dalla creazione dei prodotti fino alla verifica finale.
Se vuoi partire da una base in cui paywall e abbonamenti sono già nel codice, è quello che trovi nel codice di partenza dell'iOS Kit. Per verificare il tuo abbonamento come farà il reviewer, l'Apple Review Kit raccoglie la mia checklist prima dell'invio e le note da lasciare al tester per l'acquisto in-app.
Domande frequenti
Come si configura un abbonamento RevenueCat su iOS?
In quattro passaggi. Prima crea i tuoi prodotti in App Store Connect. Poi collega RevenueCat con la tua chiave API di App Store Connect e definisci i tuoi entitlement (i diritti di accesso), quindi costruisci il paywall. Infine testa acquisto, ripristino e scadenza: è il passaggio spesso fatto di fretta, eppure controllato da Apple.
RevenueCat è obbligatorio per vendere un abbonamento su iOS?
No. StoreKit, il framework di Apple, permette di vendere un abbonamento senza servizi di terze parti. Ma in quel caso scrivi tu tutta la logica di acquisto, ripristino e verifica dei diritti di accesso, con casi limite facili da dimenticare: cambio di dispositivo, scadenza, rimborso. RevenueCat si mette tra App Store Connect e la tua app per evitarti questo strato.
Cos'è un entitlement in RevenueCat?
Un entitlement è un diritto di accesso: rappresenta ciò che l'abbonamento sblocca, per esempio l'accesso completo all'app, qualunque sia il prodotto preciso che l'ha attivato. Se in futuro aggiungi un livello annuale, ti basta collegare il nuovo prodotto allo stesso entitlement. Il codice che verifica l'accesso nella tua app non deve cambiare.
Come testare un abbonamento RevenueCat prima dell'invio ad Apple?
Tre scenari devono funzionare prima dell'invio. Acquisto: con un account tester sandbox, l'accesso si sblocca subito, senza riavviare l'app. Ripristino: su un nuovo dispositivo o dopo una reinstallazione, con lo stesso account Apple, il pulsante di ripristino ritrova l'abbonamento attivo. Scadenza: in sandbox gli abbonamenti scadono in pochi minuti, così puoi verificare che l'accesso si chiuda.
Perché un prodotto visibile in RevenueCat resta invisibile agli utenti?
Spesso perché il prodotto non è mai stato incluso in un invio dell'app. Un prodotto creato in App Store Connect ma mai inviato alla prima revisione insieme alla sua versione resta invisibile ai tuoi utenti, anche se RevenueCat lo vede già. È una dimenticanza frequente nella fase di creazione dei prodotti.
RevenueCat prende una commissione sugli abbonamenti?
RevenueCat prende una commissione sui ricavi oltre una certa soglia mensile. Si aggiunge a quella di Apple sugli abbonamenti venduti nell'app. Controlla le fasce attuali sul sito di RevenueCat prima di costruire il tuo modello di business attorno a queste due commissioni.