RevenueCat: slik setter du opp abonnement i iOS-appen
Av Mehdi Azizi
Oppdatert , 7 min
RevenueCat kobler produktene dine i App Store Connect til appen og håndterer tilgangsrettighetene. Her er stegene for å koble til ditt første iOS-abonnement.
Hvorfor bruke RevenueCat i stedet for bare StoreKit
StoreKit, Apples rammeverk, lar deg selge abonnement uten noen tredjepartstjeneste. Men for en nybegynner betyr det mye kode å vedlikeholde hvis du skal skrive all logikken for kjøp, gjenoppretting og sjekk av tilgangsrettigheter selv. Og det er lett å glemme spesialtilfellene: bytte av enhet, utløp, refusjon.
RevenueCat legger seg mellom App Store Connect og appen din. Det leser produktene dine, håndterer aktive abonnementer og sparer deg for å skrive dette laget selv. Du styrer prisen og tilbudene fra et dashbord, uten å publisere appen på nytt hver gang du endrer noe.
Steg 1: opprett produktene dine i App Store Connect
Før du går til RevenueCat, må produktene finnes hos Apple. I App Store Connect oppretter du en abonnementsgruppe, og deretter ett eller flere nivåer med varighet, for eksempel månedlig eller årlig, og pris per territorium. Fyll også inn tekstene som vises til brukeren for hvert nivå: Apple krever dem før produktet godkjennes i review.
En vanlig glipp her: et produkt som er opprettet, men aldri sendt inn sammen med tilhørende versjon i appens første review. Et ventende produkt som aldri har vært med i en app-innsending, forblir usynlig for brukerne dine, selv om RevenueCat allerede ser det.
Steg 2: koble RevenueCat til appen din
I RevenueCat oppretter du et prosjekt og kobler til API-nøkkelen din fra App Store Connect, slik at RevenueCat synkroniserer produktene automatisk. Så definerer du "entitlements", altså tilgangsrettigheter. Et entitlement representerer det abonnementet låser opp, for eksempel full tilgang til appen, uavhengig av hvilket produkt som utløste det.
Denne mellomkoblingen er nyttig: hvis du endrer strukturen på tilbudene senere, for eksempel ved å legge til et årlig nivå, kobler du bare det nye produktet til samme entitlement. Koden som sjekker tilgang i appen, trenger du ikke røre.
I appen installeres RevenueCat-SDK-en for React Native i et Expo-prosjekt med en egen plugin. Den gir deg en enkel funksjon for å sjekke om den aktuelle brukeren har et aktivt entitlement.
Steg 3: bygg paywallen din
Paywallen er skjermen som presenterer tilbudet og starter kjøpet. RevenueCat tilbyr paywaller du konfigurerer fra dashbordet og kan endre uten å publisere appen på nytt. Eller du kan bygge din egen med SDK-en hvis du vil ha full kontroll på designet.
Plasseringen betyr like mye som designet. En paywall som vises før brukeren har sett verdien i appen, konverterer som regel dårligere enn en som kommer rett etter en første vellykket handling. Guiden om paywall-feil på iOS for nybegynnere går gjennom de vanligste fellene på dette steget, utover selve den tekniske koblingen.
Steg 4: test kjøp, gjenoppretting og utløp
Dette er steget som oftest blir slurvet med, og likevel det Apple sjekker mest. Tre scenarioer må fungere før innsending:
Kjøpet. Med en sandbox-testkonto skal kjøpet låse opp entitlementet umiddelbart, og appen din skal reagere på endringen uten at den må startes på nytt.
Gjenopprettingen. På en ny enhet eller etter reinstallering, med samme Apple-konto, skal en "Gjenopprett kjøp"-knapp finne det aktive abonnementet. Apple sjekker alltid denne flyten i review, og hvis den mangler eller ikke fungerer, er det en vanlig avvisningsgrunn under guideline 3.1.1.
Utløpet. I sandbox-miljøet utløper abonnementer etter noen minutter i stedet for flere måneder. Da kan du sjekke at tilgangen stenges riktig når perioden er over, uten å vente på en ekte faktureringssyklus.
Hva RevenueCat ikke erstatter
RevenueCat håndterer kjøpsmekanikken, ikke om App Store-siden og paywallen din følger guideline 3.1.2. Det er fortsatt ditt ansvar å beskrive abonnementet riktig i App Store-beskrivelsen, oppgi nøyaktig pris og varighet, og legge inn vilkårene for bruk. Siden om abonnement eller engangskjøp på iOS hjelper deg å velge riktig modell før du i det hele tatt kommer til dette tekniske steget.
RevenueCat tar dessuten en provisjon på inntekter over en viss månedlig terskel, i tillegg til Apples provisjon på abonnementer solgt i appen. Sjekk de gjeldende nivåene på nettsiden deres før du bygger forretningsmodellen din rundt disse to provisjonene.
De vanligste nybegynnerfeilene
Å glemme lastetilstanden. Ved oppstart trenger RevenueCat et lite øyeblikk på å hente brukerens tilgangsrettigheter. Hvis appen viser betalt innhold som standard før svaret kommer, kan en bruker uten abonnement et øyeblikk se innhold han ikke har betalt for. Legg inn en tydelig lastetilstand i stedet for en optimistisk standardvisning.
Å sjekke rettighetene på feil sted. Et aktivt entitlement må sjekkes på nytt hver gang en betalt skjerm åpnes, ikke bare én gang ved oppstart. Hvis brukeren avslutter eller abonnementet utløper mens appen er i bruk, skal neste skjerm gjenspeile endringen.
Å blande sandbox og produksjon. Produkt-ID-er og sandbox-testkontoer er adskilt fra produksjon. En test som fungerer i sandbox med feil Apple-konto, eller et produkt som bare er opprettet i produksjon, kan gi et falskt inntrykk av at alt er klart.
En app som er sjekket, ikke bare en app som kompilerer
Et abonnement som "virker" i en rask test på din egen konto, er ingen garanti for at det tåler en gjenoppretting på en annen enhet eller et ekte utløp. Det er nettopp dette en Apple-reviewer sjekker. Siden om in-app-abonnement på iOS går gjennom hele kjeden, fra oppretting av produktene til den endelige sjekken.
Hvis du vil starte fra en base der paywall og abonnementer allerede ligger i koden, er det det startkoden i iOS Kit inneholder. For å sjekke abonnementet ditt slik revieweren vil gjøre det, samler Apple Review Kit sjekklisten min før innsending og notatene du bør legge igjen til testeren om in-app-kjøpet.
Ofte stilte spørsmål
Hvordan setter jeg opp et RevenueCat-abonnement på iOS?
I fire steg. Opprett først produktene dine i App Store Connect. Koble deretter til RevenueCat med API-nøkkelen fra App Store Connect og definer entitlements (tilgangsrettighetene), og bygg så paywallen. Avslutt med å teste kjøp, gjenoppretting og utløp: det er steget folk ofte slurver med, og likevel det Apple sjekker.
Er RevenueCat påkrevd for å selge abonnement på iOS?
Nei. StoreKit, Apples rammeverk, lar deg selge abonnement uten tredjepartstjeneste. Men da skriver du all logikken for kjøp, gjenoppretting og sjekk av tilgangsrettigheter selv, med spesialtilfeller som er lette å glemme: bytte av enhet, utløp, refusjon. RevenueCat legger seg mellom App Store Connect og appen din og sparer deg for dette laget.
Hva er et entitlement i RevenueCat?
Et entitlement er en tilgangsrettighet: det representerer det abonnementet låser opp, for eksempel full tilgang til appen, uansett hvilket produkt som utløste det. Hvis du senere legger til et årlig nivå, kobler du bare det nye produktet til samme entitlement. Koden som sjekker tilgang i appen, trenger ikke endres.
Hvordan tester jeg et RevenueCat-abonnement før innsending til Apple?
Tre scenarioer må fungere før innsending. Kjøp: med en sandbox-testkonto låses tilgangen opp umiddelbart, uten omstart av appen. Gjenoppretting: på en ny enhet eller etter reinstallering, med samme Apple-konto, finner gjenopprettingsknappen det aktive abonnementet. Utløp: i sandbox utløper abonnementer etter noen minutter, så du kan sjekke at tilgangen stenges.
Hvorfor er et produkt som vises i RevenueCat usynlig for brukerne?
Ofte fordi produktet aldri har vært med i en app-innsending. Et produkt som er opprettet i App Store Connect, men aldri sendt inn i første review sammen med tilhørende versjon, forblir usynlig for brukerne dine, selv om RevenueCat allerede ser det. Det er en vanlig glipp når du oppretter produktene.
Tar RevenueCat provisjon på abonnementer?
RevenueCat tar en provisjon på inntekter over en viss månedlig terskel. Den kommer i tillegg til Apples provisjon på abonnementer solgt i appen. Sjekk de gjeldende nivåene på RevenueCats nettside før du bygger forretningsmodellen din rundt disse to provisjonene.