Ein Open-Source-SDK zur Integration von In-App-Käufen auf Flutter

Implementiere In-App-Käufe in 30 Minuten.

Out-of-the-box-Backend für Flutter In-App-Käufe

Die Integration von In-App-Käufen erfordert die Erstellung einer Backend-Infrastruktur und eines Servers für Abonnementereignisse. Dies kann Hunderte von Stunden Arbeit in Anspruch nehmen und ist eine Herausforderung zu warten.
import StoreKit
class Store: ObservableObject {
    private var productIDs = ["stone"]
    @Published var products = [Product]()
    init() {
        Task {
            await requestProducts()
        }
    }  
    @MainActor
    func requestProducts() async {
        do {
            products = try await Product.products(for: productIDs)
        } catch {
            print(error)
    }
  }
}
Section(header: Text("To buy")) {
 }
ForEach(store.products, id: .id) {
  product in
    HStack {
      Text(product.displayName)
      Spacer()
      Button("(product.displayPrice)") {
    }
  }
}
@Published var purchasedNonConsumables = [Product]()
@MainActor
func purchase(_ product: Product) async throws -> Transaction ? {
  let result =
    try await product.purchase()
  switch result {
    case .success(.verified(let transaction)):
      purchasedNonConsumables.append(product)
      await transaction.finish()
      return transaction
    default:
      return nil
  }
}
Button("(product.displayPrice)") {
 Task {
  try await store.purchase(product)
  }
}
ProductView(
 icon: "❀",
 quantity: "(store.purchasedNonConsumables.count)"
 )
 func listenForTransactions() -> Task < Void, Error > {
  return Task.detached {
    for await result in Transaction.updates {
      switch result {
        case let.verified(transaction):
          guard
          let product = self.products.first(where: {
            $0.id == transaction.productID
          })
          else {
            continue
          }
          self.purchasedNonConsumables.append(product)
          await transaction.finish()
        default:
          continue
      }
    }
  }
}
var transacitonListener: Task<Void, Error>?
init() {
   transacitonListener = listenForTransactions()
   Task {
     await requestProducts()
 }
}
@MainActor
private func handle(transactionVerification result: VerificationResult <Transaction> ) async {
  switch result {
    case let.verified(transaction):
      guard
      let product = self.products.first(where: {
        $0.id == transaction.productID
      })
      else {
        return
      }
      self.purchasedNonConsumables.insert(product)
      await transaction.finish()
    default:
      return
  }
}
Adapty SDK ermöglicht Ihnen die Integration von In-App-Abonnements in Ihre iOS-App mit unserer fertigen Infrastruktur, die alle Abonnementereignisse verwaltet und umsatzsteigernde Funktionen bietet.
// Your app's code
import 'package:adapty_flutter/adapty_flutter.dart';
Adapty().activate();
 
// Make a purchase, Adapty handles the rest
try {
	final profile = await Adapty().makePurchase(product: product);
	// successful purchase
} on AdaptyError catch (adaptyError) {
	// handle the error
} catch (error) {
	// handle another errors
}
Von der Integration bis zur Wartung – Adapty wurde entwickelt, um die Arbeit mit IAP zu erleichtern.
Demo anfordern

Warum Adapty SDK wählen?

Korrekter Abonnementstatus zu jedem Zeitpunkt

Seien Sie versichert, dass Sie immer den korrekten Abonnentenstatus auf allen Plattformen erhalten.

Serverseitige Belegvalidierung

Keine Sorge über die Richtigkeit und Sicherheit der Kaufvalidierung.

Verwaltung aller Arten von Abonnementstatus

Kostenlose Testversionen, Upgrades, Aktionsangebote, Familienfreigabe, Erneuerungen und mehr.

Unternehmensbereite Plattform mit kurzer Release-Zyklusstelle

>99,99% SLA-Zuverlässigkeit und regelmäßige Produktupdates.
Konfiguration von Plattformen
Adapty SDK installieren
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
Verarbeitung von Kaufereignissen

Schnelle und einfache Integration

Verbringen Sie nur ein paar Stunden damit, das Adapty SDK in Ihre iOS-App zu integrieren, und wir kümmern uns um den Rest.

Nur 5 SDK-Methoden, um Flutter In-App-Käufe zu implementieren

// Your app's code
try {
    final profile = await Adapty().makePurchase(product: product);
    // successful purchase
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
// Your app's code
try {
    final profile = await Adapty().restorePurchases();
    // check the access level
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
// Your app's code
try {
    await Adapty().identify(customerUserId);
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
 
// Your app's code
final builder = AdaptyProfileParametersBuilder()
  ..("Profile_Parameters")
 
try {
    await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
// Your app's code
try {
  await Adapty().updateAttribution("<attribution>", source: "<source>", networkUserId: "<networkUserId>");
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}
 
 
 
Kostenlos ausprobieren

Menschen aus allen Arten von Unternehmen wenden si…, um   ihre Einnahmen zu steigern.

Was erhalten Sie mit Adapty?

Adapty SDK bietet enorme Möglichkeiten zur Steigerung des App-Umsatzes

Echtzeit-Analytik für Ihre Flutter App

Verlassen Sie sich auf Daten mit einer Genauigkeit von 99,5% mit App Store Connect.
Loslegen
App Icon Gravity
Gravity Fit
Gesundheit & Fitness
„Transparente und fortschrittliche Analyse-Dashboards helfen uns, schneller Entscheidungen zu treffen, ohne zusätzliche Tools zu verwenden. Es spart uns viel Zeit und damit Geld.“
Ekaterina K,
PM bei Gravity Fit
Accuracy Adapty Appstore
ABC testing

Paywall A/B-Tests

Finden Sie die rentabelste Paywall und steigern Sie die Einnahmen Ihrer App.
A/B-Tests erkunden
MentalGrowth
MentalGrowth
Gesundheit & Wellness-App
„Die schnellen Analysen und die einfach zu startende A/B-Testfunktion von Adapty haben es uns ermöglicht, Hypothesen schnell zu validieren und großartige Ergebnisse zu erzielen.“
Vadim Nemchenko,
Produktmanager bei MentalGrowth

Remote-Konfiguration für Paywalls

Ändern Sie Ihre Paywall aus der Ferne, ohne die App erneut veröffentlichen zu müssen.
Jetzt ausprobieren
Smitten
Smitten - Dating
Lebensstil
„Unser Wachstum- und Revenue-Team kann Paywalls, Produktangebote und Preistests schnell in vielen verschiedenen Märkten implementieren und verwalten.“
Kyle Smith,
Leiter Daten bei Smitten Dating
Table Json Table Locale

Vertrauen in Benutzerfreundlichkeit und Kundenservice

Basierend auf 500+ Bewertungen
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025