RevenueCat: sådan opsætter du in-app-abonnement på iOS
Af Mehdi Azizi
Opdateret , 7 min.
RevenueCat forbinder dine App Store Connect-produkter med din app og styrer adgangsrettigheder. Her er trinene til dit første in-app-abonnement på iOS.
Hvorfor bruge RevenueCat i stedet for kun StoreKit
StoreKit, Apples framework, lader dig sælge et abonnement uden nogen tredjepartstjeneste. Men for en begynder er det meget kode at vedligeholde selv at skrive hele logikken for køb, gendannelse og tjek af adgangsrettigheder. Og der er grænsetilfælde, som er lette at glemme: skift af enhed, udløb, refusion.
RevenueCat sidder mellem App Store Connect og din app: det læser dine produkter, styrer de aktive abonnementer og sparer dig for at skrive det lag selv. Du bestemmer stadig over prisen og tilbuddene fra et dashboard, uden at udgive din app igen ved hver ændring.
Trin 1: opret dine produkter i App Store Connect
Før RevenueCat skal produkterne findes hos Apple. I App Store Connect opretter du en abonnementsgruppe og derefter et eller flere niveauer med deres varighed, for eksempel månedligt eller årligt, og deres pris pr. område. Udfyld også de tekster, brugeren ser for hvert niveau: Apple kræver dem, før produktet bliver godkendt i review.
En hyppig forglemmelse her: et produkt, der er oprettet, men aldrig sendt med i appens første review sammen med den tilhørende version. Et ventende produkt, der aldrig har været med i en app-indsendelse, forbliver usynligt for dine brugere, selv om RevenueCat allerede kan se det.
Trin 2: forbind RevenueCat med din app
I RevenueCat opretter du et projekt, forbinder din App Store Connect API-nøgle, så RevenueCat automatisk synkroniserer dine produkter, og definerer derefter "entitlements", altså adgangsrettigheder. Et entitlement repræsenterer det, abonnementet låser op, for eksempel fuld adgang til appen, uafhængigt af hvilket konkret produkt der udløste det.
Det mellemled er nyttigt: hvis du senere ændrer strukturen i dine tilbud, for eksempel ved at tilføje et årligt niveau, kobler du bare det nye produkt til det samme entitlement, uden at røre koden, der tjekker adgangen i din app.
I appen installeres RevenueCat SDK'et til React Native i et Expo-projekt med et dedikeret plugin, og det giver dig en simpel funktion til at se, om den aktuelle bruger har et aktivt entitlement.
Trin 3: byg din paywall
Paywallen er skærmen, der præsenterer tilbuddet og starter købet. RevenueCat tilbyder paywalls, der kan konfigureres fra dashboardet og ændres uden at udgive appen igen. Du kan også bygge din egen med SDK'et, hvis du vil have fuld kontrol over designet.
Placeringen betyder lige så meget som designet. En paywall, der vises, før personen har set værdien i appen, konverterer typisk dårligere end en paywall, der kommer lige efter en første vellykket handling. Guiden om paywall-fejl på iOS for begyndere gennemgår de mest almindelige faldgruber på dette trin, ud over selve den tekniske opsætning.
Trin 4: test køb, gendannelse og udløb
Det er det trin, der oftest sjuskes med, og samtidig det, Apple tjekker mest. Tre scenarier skal virke før indsendelsen:
Køb. Med en sandbox-testkonto skal købet låse entitlementet op med det samme, og din app skal reagere på ændringen uden at skulle genstartes.
Gendannelse. På en ny enhed eller efter geninstallation, med den samme Apple-konto, skal en knap "Gendan køb" finde det aktive abonnement. Apple tjekker altid dette forløb i review, og hvis det mangler eller ikke virker, er det en hyppig afvisningsgrund under guideline 3.1.1.
Udløb. I sandbox-miljøet udløber abonnementer på få minutter i stedet for flere måneder. Så kan du tjekke, at adgangen lukker korrekt, når perioden er slut, uden at vente på en rigtig faktureringscyklus.
Hvad RevenueCat ikke erstatter
RevenueCat håndterer købsmekanikken, ikke om din produktside eller din paywall overholder guideline 3.1.2. Det er stadig dit ansvar at beskrive abonnementet korrekt i din App Store-beskrivelse, angive den præcise pris og varighed og udfylde dine brugsvilkår. Siden om abonnement eller engangskøb på iOS hjælper dig med at vælge den rigtige model, allerede før du når til dette tekniske trin.
RevenueCat tager desuden en kommission på omsætningen over en vis månedlig grænse, oven i Apples kommission på abonnementer solgt i appen. Tjek de aktuelle niveauer på deres egen side, før du bygger din forretningsmodel op omkring de to kommissioner.
De mest almindelige begynderfejl
At glemme loading-tilstanden. Ved opstart skal RevenueCat bruge et kort øjeblik på at hente brugerens adgangsrettigheder. Hvis din app som standard viser betalt indhold før svaret, kan en bruger uden abonnement i et øjeblik se indhold, vedkommende ikke har betalt for. Lav en eksplicit loading-tilstand i stedet for en optimistisk standardvisning.
At tjekke rettigheder det forkerte sted. Et aktivt entitlement skal tjekkes igen, hver gang en betalt skærm åbnes, ikke kun én gang ved opstart. Hvis brugeren opsiger, eller abonnementet udløber, mens appen er i brug, skal den næste skærm afspejle ændringen.
At blande sandbox og produktion sammen. Produkt-id'er og sandbox-testkonti er adskilt fra produktion. En test, der virker i sandbox med den forkerte Apple-konto, eller et produkt, der kun er oprettet i produktion, kan give et falsk indtryk af, at alt er klar.
En app, der er tjekket, ikke bare en app, der kompilerer
Et abonnement, der "virker" i en hurtig test på din egen konto, er ingen garanti for, at det klarer en gendannelse på en anden enhed eller et rigtigt udløb. Det er præcis det, en Apple-reviewer tjekker. Siden om in-app-abonnement på iOS gennemgår hele kæden, fra oprettelse af produkterne til den endelige kontrol.
Hvis du vil starte fra et grundlag, hvor paywall og abonnementer allerede er i koden, er det præcis det, startkoden i iOS Kit indeholder. For at tjekke dit abonnement, som revieweren vil gøre det, samler Apple Review Kit min tjekliste før indsendelse og de noter, du skal give testeren om in-app-købet.
Ofte stillede spørgsmål
Hvordan opsætter jeg et RevenueCat-abonnement på iOS?
I fire trin. Opret først dine produkter i App Store Connect. Forbind derefter RevenueCat med din App Store Connect API-nøgle, definér dine entitlements (adgangsrettighederne), og byg så paywallen. Slut af med at teste køb, gendannelse og udløb: det trin sjuskes der ofte med, men Apple tjekker det.
Er RevenueCat påkrævet for at sælge et abonnement på iOS?
Nej. StoreKit, Apples framework, lader dig sælge et abonnement uden tredjepartstjeneste. Men så skriver du selv hele logikken for køb, gendannelse og tjek af adgangsrettigheder, med grænsetilfælde, der er lette at glemme: skift af enhed, udløb, refusion. RevenueCat sidder mellem App Store Connect og din app og sparer dig for det lag.
Hvad er et entitlement i RevenueCat?
Et entitlement er en adgangsrettighed: det repræsenterer det, abonnementet låser op, for eksempel fuld adgang til appen, uanset hvilket konkret produkt der udløste det. Hvis du senere tilføjer et årligt niveau, kobler du bare det nye produkt til det samme entitlement. Koden, der tjekker adgangen i din app, skal ikke ændres.
Hvordan tester jeg et RevenueCat-abonnement, før jeg sender til Apple?
Tre scenarier skal virke før indsendelsen. Køb: med en sandbox-testkonto låses adgangen op med det samme, uden at appen skal genstartes. Gendannelse: på en ny enhed eller efter geninstallation, med den samme Apple-konto, finder gendannelsesknappen det aktive abonnement. Udløb: i sandbox udløber abonnementer på få minutter, så du kan tjekke, at adgangen lukker.
Hvorfor er et produkt synligt i RevenueCat, men usynligt for brugerne?
Ofte fordi produktet aldrig har været med i en app-indsendelse. Et produkt, der er oprettet i App Store Connect, men aldrig sendt med i det første review sammen med den tilhørende version, forbliver usynligt for dine brugere, selv om RevenueCat allerede kan se det. Det er en hyppig forglemmelse, når produkterne oprettes.
Tager RevenueCat en kommission på abonnementer?
RevenueCat tager en kommission på omsætningen over en vis månedlig grænse. Den kommer oven i Apples kommission på abonnementer solgt i appen. Tjek de aktuelle niveauer på RevenueCats side, før du bygger din forretningsmodel op omkring de to kommissioner.