iOS SDK'yı Yükleyin ve Yapılandırın
Adapty SDK, mobil uygulamanıza sorunsuz entegrasyon için iki temel modül içerir:
- Core Adapty: Bu zorunlu 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 no-code bir araç olan Adapty Paywall Builder’ı kullanıyorsanız gereklidir.
Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gerçek bir örnekle görmek ister misiniz? Paywall gösterme, satın alma yapma ve diğer temel işlevleri kapsayan tam kurulumu sergileyen örnek uygulamalarımıza göz atın.
Tam bir uygulama adım adım rehberi için videoları da izleyebilirsiniz:
Gereksinimler
SDK teknik olarak core modül için iOS 13.0+ desteği sunsa da, aşağıdaki nedenlerle pratikte iOS 15.0+ zorunludur:
- Tüm StoreKit 2 özellikleri iOS 15.0+ gerektirir
- AdaptyUI modülü yalnızca iOS 15.0+ için geçerlidir
Xcode 26.4 veya sonraki bir sürümle 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ükleyin
Adapty SDK’nın Adapty modülünü etkinleştirin
Uygulamanızın kodunda Adapty SDK’yı 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.
Diğer Adapty SDK metodlarını çağırmadan önce activate işleminin tamamlanmasını bekleyin. Tam sıralama için iOS SDK’da çağrı sırası bölümüne 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 takip edin.
- 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 Adapty çekirdeğini etkinleştirmeniz gerekir.
İsteğe bağlı olarak, AdaptyUI’ı etkinleştirirken paywalllar için varsayılan önbellek ayarlarını geçersiz kılabilirsiniz.
İsteğe bağlı kurulum
Günlük Kaydı
Günlük kayıt sistemini kurma
Adapty, neler olduğunu anlamanıza yardımcı olmak için hataları ve diğer önemli bilgileri kaydeder. Aşağıdaki seviyeler mevcuttur:
| Seviye | Açıklama |
|---|---|
error | Yalnızca hatalar loglanır |
warn | Hatalar ve SDK’dan gelen, kritik hatalara yol açmayan ancak dikkat edilmesi gereken mesajlar loglanır |
info | Hatalar, uyarılar ve çeşitli bilgi mesajları loglanır |
verbose | Fonksiyon çağrıları, API sorguları gibi hata ayıklama sırasında işe yarayabilecek tüm ek bilgiler loglanır |
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(logLevel: .verbose) // recommended for development
Günlük sistemi mesajlarını yönlendirme
Adapty’nin günlük mesajlarını kendi sisteminize göndermek veya bir dosyaya kaydetmek istiyorsanız, setLogHandler metodunu kullanarak içinde özel günlük mantığınızı uygulayın. Bu işleyici, mesaj içeriği ve önem düzeyi içeren günlük kayıtları alır.
Adapty.setLogHandler { record in
writeToLocalFile("Adapty \(record.level): \(record.message)")
}
Veri politikaları
Adapty, kullanıcılarınızın kişisel verilerini siz açıkça göndermediğiniz sürece 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’ya ihtiyacınız olmadığında App Tracking Transparency isteğini tetiklememek için bu parametreyi kullanın. Varsayılan değer false’tur. IDFA toplama hakkında daha fazla bilgi 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ı özellikler uygulamanız için gerekli değilse gereksiz veri toplamayı azaltmak amacıyla kullanabilirsiniz.
let configurationBuilder =
AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(ipAddressCollectionDisabled: true)
AdaptyUI’daki paywaller 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 | Depolamanın bayt cinsinden toplam maliyet limiti. |
| memoryStorageCountLimit | zorunlu | Bellek depolamasının öğe sayısı limiti. |
| diskStorageSizeLimit | zorunlu | Depolamanı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ğrulama sonrasında işlemleri otomatik 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 tamamlama modunda çalışacak ş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 paywaller 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 ile yapılan 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 strict concurrency derleme hataları görebilirsiniz. Tipik belirtiler arasında AdaptyUIBuilderLogic içindeki @Sendable öznitelik uyuşmazlıkları veya benzer çapraz modül 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. Sonuç olarak bazı Adapty hedefleri (Adapty, AdaptyUI, AdaptyUIBuilder) Swift 5 kurallarıyla, diğerleri ise Swift 6 ile derlenir ve bu durum modüller arası @Sendable uyumsuzluklarına yol açar.
Çözüm: Adapty SDK 3.15.5 veya sonraki bir sürüme yükseltin; bu sürüm, karışık Swift dil sürümlerinden bağımsız olarak sorunu giderir.
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"),
]
Podfile SWIFT_VERSION geçersiz kılmadan kaynaklanan Swift 6 derleme hataları
CocoaPods ile iOS için derleme yaparken Adapty pod hedeflerinde Swift 6 derleme hataları görebilirsiniz. Tipik belirtiler arasında AdaptyUIBuilderLogic içinde @Sendable uyumsuzlukları, Adapty türlerinde eksik Sendable conformance veya actor izolasyon hataları yer alır.
Adapty pod’ları s.swift_version = '6.0' olarak bildirir ve derleme için Swift 6 gerektirir. Kendi uygulama kodunuz Swift 5’te kalabilir — yalnızca Adapty pod hedeflerinin (Adapty, AdaptyUI, AdaptyUIBuilder, AdaptyLogger) Swift 6 ile derlenmesi gerekir.
En yaygın neden, Podfile’ınızdaki her pod hedefi için SWIFT_VERSION’ı yeniden yazan bir post_install kancasıdır:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '5.9'
end
end
end
Düzeltme: Adapty pod hedeflerini geçersiz kılmanın dışında bırakın:
post_install do |installer|
installer.pods_project.targets.each do |target|
next if %w[Adapty AdaptyUI AdaptyUIBuilder AdaptyLogger].include?(target.name)
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '5.9'
end
end
end
Ardından pod install komutunu çalıştırın ve yeniden derleyin.
Doğrulamak için Pods.xcodeproj dosyasını açın, Adapty pod hedefini seçin → Build Settings → Swift Language Version. Burada Swift 6 yazması gerekir.