iOS SDK'yı yükle ve yapılandır
Adapty SDK, mobil uygulamanıza sorunsuz entegrasyon için iki temel modül içerir:
- Core Adapty: Bu temel SDK, Adapty’nin uygulamanızda düzgün çalışması için gereklidir.
- AdaptyUI: Bu isteğe bağlı modül, platformlar arası paywall’lar kolayca oluşturmak için kullanılan, kod gerektirmeyen kullanıcı dostu bir araç olan Adapty Paywall Builder’ı kullanıyorsanız gereklidir.
Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğine dair gerçek dünya örneği görmek ister misiniz? Paywall gösterme, satın alma yapma ve diğer temel işlevler dahil olmak üzere tam kurulumu gösteren örnek uygulamalarımıza göz atın.
Tam bir uygulama adım adım anlatımı için şu videoları da izleyebilirsiniz:
Gereksinimler
SDK teknik olarak çekirdek modül için iOS 13.0+‘ı desteklese de, pratikte iOS 15.0+ zorunludur:
- Tüm StoreKit 2 özellikleri iOS 15.0+ gerektirir
- AdaptyUI modülü yalnızca iOS 15.0+ ile çalışır
Xcode 26.4 veya sonraki sürümlerle derleme yaparken Adapty SDK 3.15.7+ gereklidir.
SDK’yı yüklemek, Adapty kurulumunun 5. adımıdır. Uygulamanızda satın almalar çalışmadan önce uygulamanızı mağazalara bağlamanız, ardından Adapty Kontrol Paneli’nde ürünler, bir paywall ve bir placement oluşturmanız gerekir. Hızlı başlangıç kılavuzu tüm gerekli adımları anlatmaktadır.
Adapty SDK’yı Yükle
Adapty SDK, Swift Package Manager aracılığıyla yüklenir. Xcode’da File -> Add Package Dependency… yolunu izleyin. Paket bağımlılığı ekleme adımları Xcode sürümüne göre farklılık gösterebileceğinden gerekirse Xcode belgelerine başvurun.
- Depo URL’sini girin:
https://github.com/adaptyteam/AdaptySDK-iOS.git - Sürümü seçin (en son kararlı sürüm önerilir) ve Add Package düğmesine tıklayın.
- Choose Package Products penceresinde ihtiyaç duyduğunuz modülleri seçin:
- Adapty (temel modül)
- AdaptyUI (isteğe bağlı - yalnızca Paywall Builder kullanmayı planlıyorsanız)
Not:
- Kids modunu etkinleştirmek için Adapty yerine Adapty_KidsMode seçin.
- Listeden başka paket seçmeyin – bunlara ihtiyacınız olmayacak.
- Kurulumu tamamlamak için Add Package düğmesine tıklayın.
- Kurulumu doğrulayın: Proje gezgininde Package Dependencies altında “Adapty” (ve seçildiyse “AdaptyUI”) görünmelidir.
Adapty iOS SDK 4.0 ön sürüm aşamasındadır. Swift Package Manager, Up to Next Major Version (from:) kuralıyla beta sürümlerini çözemez; bu nedenle tam sürümü sabitlemeniz gerekir. Xcode’da Dependency Rule ayarını Exact Version olarak belirleyin ve 4.0.0-beta.1 girin. Package.swift içinde ise .exact("4.0.0-beta.1") kullanın. Daha fazla bilgi için Adapty iOS SDK’yı v4’e geçirme bölümüne bakın.
Adapty SDK’nın Adapty modülünü etkinleştirin
Adapty SDK’yı uygulama kodunuzda etkinleştirin.
Adapty SDK’nın uygulamanızda yalnızca bir kez etkinleştirilmesi gerekir.
Public SDK Key’inizi almak için:
- Adapty Kontrol Paneli’ne gidin ve App settings → General sayfasına geçin.
- Api keys bölümünden Public SDK Key’i kopyalayın (Secret Key’i değil).
- Koddaki
"YOUR_PUBLIC_SDK_KEY"ifadesini bununla değiştirin.
- Adapty’yi başlatırken Public SDK key kullandığınızdan emin olun; Secret key yalnızca sunucu tarafı API için kullanılmalıdır.
- SDK key’leri her uygulama için benzersizdir; birden fazla uygulamanız varsa doğru olanı seçtiğinizden emin olun.
activate çözümlenmeden önce başka hiçbir Adapty SDK metodunu çağırmayın. Tam sıralama için iOS SDK’da çağrı sırası sayfasına bakın.
Şimdi uygulamanızda paywallları ayarlayın:
- Adapty Paywall Builder kullanıyorsanız, önce aşağıdaki AdaptyUI modülünü etkinleştirin, ardından Paywall Builder hızlı başlangıç kılavuzunu izleyin.
- Kendi paywall arayüzünüzü oluşturuyorsanız özel paywalllar için hızlı başlangıç kılavuzuna bakın.
Adapty SDK’nın AdaptyUI Modülünü Etkinleştirme
Paywall Builder kullanmayı planlıyorsanız ve AdaptyUI modülünü kurduysanız, AdaptyUI’ı da etkinleştirmeniz gerekir.
Kodunuzda, AdaptyUI’ı etkinleştirmeden önce mutlaka Adapty çekirdek modülünü etkinleştirmelisiniz.
İsteğe bağlı olarak, AdaptyUI’yi etkinleştirirken paywall’lar için varsayılan önbellekleme ayarlarını geçersiz kılabilirsiniz.
İsteğe Bağlı Kurulum
Günlük Kaydı
Günlük kaydı sistemini ayarlama
Adapty, neler olduğunu anlamanıza yardımcı olmak için hataları ve diğer önemli bilgileri günlüğe kaydeder. Aşağıdaki seviyeler mevcuttur:
| Level | Description |
|---|---|
error | Yalnızca hatalar kayıt altına alınır |
warn | Kritik hatalara yol açmayan ancak dikkat edilmesi gereken hatalar ve SDK mesajları kayıt altına alınır |
info | Hatalar, uyarılar ve çeşitli bilgi mesajları kayıt altına alınır |
verbose | Fonksiyon çağrıları, API sorguları gibi hata ayıklama sırasında işe yarayabilecek tüm ek bilgiler kayıt altına alınır |
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(logLevel: .verbose) // recommended for development
Log sistemi mesajlarını yönlendirin
Adapty’nin log mesajlarını kendi sisteminize göndermek veya bir dosyaya kaydetmek istiyorsanız setLogHandler metodunu kullanın ve özel log mantığınızı bu metodun içine uygulayın. Bu handler, mesaj içeriği ve önem düzeyi içeren log kayıtları alır.
Adapty.setLogHandler { record in
writeToLocalFile("Adapty \(record.level): \(record.message)")
}
Veri politikaları
Adapty, açıkça göndermedikçe kullanıcılarınızın kişisel verilerini saklamaz. Ancak mağaza veya ülke yönergelerine uymak için ek veri güvenliği politikaları uygulayabilirsiniz.
IDFA toplama ve paylaşımını devre dışı bırakma
Adapty modülünü etkinleştirirken, IDFA toplama ve paylaşımını devre dışı bırakmak için idfaCollectionDisabled değerini true olarak ayarlayın.
App Store İnceleme Yönergelerine uymak veya IDFA uygulamanız için gerekli olmadığında App Tracking Transparency istemini tetiklemekten kaçınmak için bu parametreyi kullanın. Varsayılan değer false’tur. IDFA toplama hakkında daha fazla ayrıntı için Analytics entegrasyonu bölümüne bakın.
let configurationBuilder =
AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(idfaCollectionDisabled: true)
IP toplama ve paylaşımını devre dışı bırakma
Adapty modülünü etkinleştirirken, kullanıcı IP adresi toplama ve paylaşımını devre dışı bırakmak için ipAddressCollectionDisabled değerini true olarak ayarlayın. Varsayılan değer false’tur.
Bu parametreyi; kullanıcı gizliliğini artırmak, bölgesel veri koruma düzenlemelerine (GDPR veya CCPA gibi) uymak ya da IP tabanlı özelliklere ihtiyaç duymadığınızda gereksiz veri toplamayı azaltmak için kullanabilirsiniz.
let configurationBuilder =
AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(ipAddressCollectionDisabled: true)
AdaptyUI’da paywall’lar için medya önbelleği yapılandırması
AdaptyUI yapılandırmasının isteğe bağlı olduğunu unutmayın. AdaptyUI modülünü yapılandırma olmadan da etkinleştirebilirsiniz. Ancak yapılandırmayı kullanıyorsanız tüm parametreler zorunludur.
// Configure AdaptyUI
let adaptyUIConfiguration = AdaptyUI.Configuration(
mediaCacheConfiguration: .init(
memoryStorageTotalCostLimit: 100 * 1024 * 1024,
memoryStorageCountLimit: .max,
diskStorageSizeLimit: 100 * 1024 * 1024
)
)
// Activate AdaptyUI
AdaptyUI.activate(configuration: adaptyUIConfiguration)
Parametreler:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| memoryStorageTotalCostLimit | zorunlu | Depolama alanının bayt cinsinden toplam maliyet limiti. |
| memoryStorageCountLimit | zorunlu | Bellek depolama alanının öğe sayısı limiti. |
| diskStorageSizeLimit | zorunlu | Depolama alanının diskteki bayt cinsinden dosya boyutu limiti. 0, limit olmadığı anlamına gelir. |
İşlem tamamlama davranışı
Bu özellik SDK 3.12.0 sürümünden itibaren kullanılabilir.
Adapty, varsayılan olarak başarılı doğrulamanın ardından işlemleri otomatik olarak tamamlar. Ancak gelişmiş işlem doğrulamasına ihtiyaç duyuyorsanız (sunucu taraflı makbuz doğrulama, dolandırıcılık tespiti veya özel iş mantığı gibi), SDK’yı manuel işlem tamamlamayı kullanacak şekilde yapılandırabilirsiniz.
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(transactionsFinishBehavior: .manual) // .auto is the default
İşlemlerin nasıl tamamlanacağına dair daha fazla ayrıntı için kılavuza bakın.
Yedekten geri yüklemede verileri temizle
clearDataOnBackup değeri true olarak ayarlandığında, SDK uygulamanın bir iCloud yedeğinden geri yüklendiğini algılar ve önbelleğe alınmış profil bilgileri, ürün ayrıntıları ve paywalllar dahil olmak üzere yerel olarak depolanan tüm SDK verilerini siler. SDK ardından temiz bir durumla başlatılır. Varsayılan değer false’tur.
Yalnızca yerel SDK önbelleği silinir. Apple’daki işlem geçmişi ve Adapty sunucularındaki kullanıcı verileri değişmeden kalır.
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(clearDataOnBackup: true) // default – false
Sorun Giderme
Tuist ile Swift 6 eşzamanlılık hatası
Tuist ile derleme yaparken Swift 6 katı eşzamanlılık derleme hataları görebilirsiniz. Tipik belirtiler arasında AdaptyUIBuilderLogic içinde @Sendable nitelik uyumsuzlukları veya benzer modüller arası Sendability hataları yer alır.
Bu durum, Tuist’in SPM paketlerinden Xcode projeleri oluştururken swift-tools-version: 6.0 ayarını korumamasından kaynaklanır. Bunun sonucunda bazı Adapty hedefleri (Adapty, AdaptyUI, AdaptyUIBuilder) Swift 5 kurallarıyla, diğerleri ise Swift 6 ile derlenir ve bu da modüller arası @Sendable uyumsuzluklarına yol açar.
Çözüm: Adapty SDK 3.15.5 veya üzeri sürüme yükseltin; bu, karışık Swift dil sürümlerinden bağımsız olarak sorunu çözer.
Geçici çözüm: Yükseltemiyorsanız, Tuist yapılandırmanızda üç Adapty hedefinin tamamı için Swift 6’yı açıkça ayarlayın:
targetSettings: [
"Adapty": .init().swiftVersion("6"),
"AdaptyUI": .init().swiftVersion("6"),
"AdaptyUIBuilder": .init().swiftVersion("6"),
]