StoreKit 2 (iOS)
Apple'ın modern IAP framework'ü. StoreKit 1'in yerini alarak çok daha temiz ve güvenli bir API sunar.
Temel Özellikler
- Swift-native: async/await, Codable protokoller - modern Swift ile doğal uyum
- Transaction.updates: Gerçek zamanlı işlem dinleme (uygulama açıkken ve arka planda)
- JWS Verification: Client-side doğrulama imkânı (JSON Web Signature)
- Subscription Status API: Abonelik durumunu sorgulama
- Otomatik finish: Transaction lifecycle yönetimi daha basit
Temel Akış
Product.products(for:)ile ürünleri App Store'dan çekproduct.purchase()ile satın alma başlatTransaction.updatesile sonucu dinle- Transaction'ı
finish()ile tamamla - Server'a bildir ve özelliği aç
Server-Side Entegrasyon
- App Store Server API v2: Subscription durumu sorgulama, transaction geçmişi
- App Store Server Notifications V2: Webhook ile gerçek zamanlı bildirimler
- Signed Transactions: JWS formatında imzalı işlem verileri
- Server-side validation her zaman önerilir (client-side'a güvenme)
StoreKit 2 Test Etme
- Xcode StoreKit Configuration ile local test (sunucu gerekmez)
- Sandbox hesapları ile gerçek akış testi
- Hızlandırılmış abonelik süreleri (1 ay = 5 dakika sandbox'ta)
Google Play Billing Library (Android)
Güncel Sürüm (2026)
- Billing Library v7+ - en güncel özellikleri destekler
- Kotlin-first API tasarımı
- PendingPurchase desteği (satın alma onay beklerken)
Temel Akış
BillingClientoluştur ve Google Play'e bağlantı kurqueryProductDetails()ile ürünleri sorgulalaunchBillingFlow()ile satın alma ekranını açPurchasesUpdatedListenerile sonucu al- Acknowledge et - 3 gün içinde ZORUNLU!
- Consumable ise consume et
Kritik Farklar (iOS'tan)
- Acknowledge zorunlu: 3 gün içinde acknowledge edilmeyen satın almalar otomatik iade edilir
- Consume: Consumable ürünleri consume etmek gerekir (tekrar satın alınabilir hale getirmek için)
- Real-time Developer Notifications: Google Cloud Pub/Sub ile webhook
- Alternative Billing: Bazı bölgelerde alternatif ödeme seçeneği
Cross-Platform Karşılaştırma
| Konu | iOS (StoreKit 2) | Android (Billing v7) |
|---|---|---|
| Ürün tanımlama | App Store Connect | Play Console |
| Sandbox test | Sandbox account + Xcode StoreKit Config | License testing |
| Receipt format | JWS (signed JSON) | Purchase token |
| Grace period | 6/16 gün | 3/7/14/30 gün |
| Acknowledge | Otomatik (finish) | Manuel (3 gün süresi var) |
| Webhook | Server Notifications V2 | Cloud Pub/Sub RTDN |
React Native / Cross-Platform Çözümler
react-native-iap
- En popüler cross-platform IAP kütüphanesi
- iOS ve Android'i tek API ile yönetir
- Açık kaynak, aktif topluluk
- StoreKit 2 ve Billing v7 desteği
RevenueCat SDK
- IAP yönetim platformu SDK'sı
- Backend dahil (receipt validation, subscription tracking)
- Dashboard, analytics, A/B test
- React Native, Flutter, Unity, native iOS/Android desteği
Adapty
- Paywall builder + analytics + IAP yönetimi
- Remote paywall konfigürasyonu
- A/B test desteği
- Cross-platform SDK
Best Practices
- Server-side receipt validation her zaman uygula (güvenlik için kritik)
- Webhook/notification'ları dinle (subscription durumu değişikliklerini yakala)
- Grace period ve billing retry'ı aktif et
- Sandbox/test ortamında kapsamlı test yap (tüm senaryoları kapsa)
- Acknowledge/finish işlemlerini asla atlatma
- Offline senaryolarını handle et (ağ yokken satın alma girişimi)
StoreKit 2 ve Billing v7, modern, güvenli ve kullanımı kolay API'lerdir. Cross-platform geliştirme yapıyorsanız RevenueCat veya react-native-iap ile entegrasyonu önemli ölçüde basitleştirebilirsiniz.