RevenueCat vs Adapty
SaaS-Tools für Subscription-Management auf iOS + Android — RevenueCat (Marktführer) gegen Adapty (Fokus auf Paywall + A/B-Tests). Feature-Parität, Preisgestaltung, Integration.
Miete Multi-Store-Abo-Infrastruktur als SDK + Backend
Apples First-Party-Framework, aber die Serverseite schreibst du selbst
Die Schwelle ist eindeutig: Liegt der monatlich verfolgte Umsatz (MTR) unter $2.500, ist RevenueCat praktisch kostenlos – dort vergleichst du nicht mit 1 %, sondern mit null Kosten, und deine eigene Infrastruktur bleibt daneben immer teurer. Bei einem Produkt, das nur über den App Store verkauft wird, ein einziges Produkt hat und datenschutzsensibel ist, lässt sich reines StoreKit 2 verteidigen. Bist du in mehreren Stores aktiv, wird es teuer, die 18 Benachrichtigungstypen der RTDN parallel mit den App-Store-V2-Benachrichtigungen synchron zu halten; als grobe Faustregel solltest du die Entscheidung ab einem MTR von $50.000+ neu abwägen.
| Kategorie | RevenueCat | StoreKit 2 (kendi altyapın) |
|---|---|---|
| Performance | 8/10 | 8/10 |
| Erlernbarkeit | 8/10 | 5/10 |
| Ökosystem | 8/10 | 6/10 |
| Community | 6/10 | 5/10 |
| Arbeitsmarkt | 5/10 | 6/10 |
| Zukunftssicherheit | 8/10 | 8/10 |
// RevenueCat - Entitlement-Prüfung und Kauf (iOS SDK 5.x)
import RevenueCat
func configureRevenueCat() {
Purchases.logLevel = .debug
Purchases.configure(withAPIKey: "appl_XXXXXXXXXXXX")
}
func unlockProIfEntitled() async {
do {
let customerInfo = try await Purchases.shared.customerInfo()
if customerInfo.entitlements["pro"]?.isActive == true {
print("Pro-Entitlement aktiv")
}
} catch {
print("customerInfo Fehler: \(error)")
}
}
func purchasePro() async {
do {
let offerings = try await Purchases.shared.offerings()
guard let package = offerings.current?.availablePackages.first else { return }
let result = try await Purchases.shared.purchase(package: package)
if result.customerInfo.entitlements["pro"]?.isActive == true {
print("Kauf erfolgreich, Pro aktiv")
}
} catch {
print("Kauffehler: \(error)")
}
}// StoreKit 2 - Transaction-Listening und Entitlement-Prüfung (eigene Infrastruktur)
import StoreKit
func listenForTransactions() -> Task<Void, Error> {
Task.detached {
for await result in Transaction.updates {
switch result {
case .verified(let transaction):
await grantEntitlement(for: transaction)
await transaction.finish()
case .unverified(_, let error):
print("Verifizierung fehlgeschlagen: \(error)")
}
}
}
}
func checkCurrentEntitlement() async -> Bool {
for await result in Transaction.currentEntitlements {
guard case .verified(let transaction) = result else { continue }
if transaction.productID == "pro_monthly" {
return true
}
}
return false
}
func purchase(product: Product) async throws {
let result = try await product.purchase()
switch result {
case .success(let verification):
guard case .verified(let transaction) = verification else { return }
await grantEntitlement(for: transaction)
await transaction.finish()
case .userCancelled, .pending:
break
@unknown default:
break
}
}
func grantEntitlement(for transaction: Transaction) async {
// JWS an den Server senden, mit der App Store Server API gegenprüfen
}Die Schwelle ist eindeutig: Liegt der monatlich verfolgte Umsatz (MTR) unter $2.500, ist RevenueCat praktisch kostenlos – dort vergleichst du nicht mit 1 %, sondern mit null Kosten, und deine eigene Infrastruktur bleibt daneben immer teurer. Bei einem Produkt, das nur über den App Store verkauft wird, ein einziges Produkt hat und datenschutzsensibel ist, lässt sich reines StoreKit 2 verteidigen. Bist du in mehreren Stores aktiv, wird es teuer, die 18 Benachrichtigungstypen der RTDN parallel mit den App-Store-V2-Benachrichtigungen synchron zu halten; als grobe Faustregel solltest du die Entscheidung ab einem MTR von $50.000+ neu abwägen.
Kostenlose Beratung erhaltenLiegt der monatlich verfolgte Umsatz (MTR) unter $2.500, ist RevenueCat praktisch kostenlos und übernimmt die serverseitige Multi-Store-Validierung, Webhooks und die Rückerstattungsverwaltung – in diesem Fall ist RevenueCat meist sinnvoll. Bei einer Single-Platform-App mit einem einzigen einfachen Produkt, die Umsatzdaten nicht an Dritte weitergeben möchte, ist reines StoreKit 2 eine vertretbare Option. Bei einem wachsenden Multi-Store-Produkt kommt eine selbst geschriebene Infrastruktur meist teurer.