iOS SDK'sını yükle ve yapılandır

Adapty SDK, uygulamanıza sorunsuz entegrasyon için iki temel modül içerir:

  • Core Adapty: Adapty’nin uygulamanızda düzgün çalışması için zorunlu olan bu SDK’dır.
  • AdaptyUI: Kolayca çapraz platform paywall’lar oluşturmak için kullanılan, kod gerektirmeyen Adapty Paywall Builder’ı kullanıyorsanız ihtiyaç duyacağınız isteğe bağlı modüldür.

Adapty SDK’sının mobil bir uygulamaya nasıl entegre edildiğinin gerçek dünya örneğini 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.

Eksiksiz bir uygulama için şu videoları da izleyebilirsiniz:

Gereksinimler

SDK teknik olarak core modül için iOS 13.0+‘ı desteklese de pratikte iOS 15.0+ gereklidir; çünkü:

  • Tüm StoreKit 2 özellikleri iOS 15.0+ gerektirir
  • AdaptyUI modülü yalnızca iOS 15.0+ için çalışır

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’sını Yükle

Release

Adapty SDK’sının Adapty modülünü etkinleştir

Adapty SDK’sını uygulama kodunuzda etkinleştirin.

Adapty SDK’sının uygulamanızda yalnızca bir kez etkinleştirilmesi gerekir.

Public SDK Key’inizi almak için:

  1. Adapty Kontrol Paneli’ne gidin ve App settings → General sayfasına geçin.
  2. Api keys bölümünden Public SDK Key’i kopyalayın (Secret Key’i değil).
  3. 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.

Şimdi uygulamanızda paywall’ları ayarlayın:

Adapty SDK’sının AdaptyUI modülünü etkinleştir

Paywall Builder kullanmayı planlıyorsanız ve AdaptyUI modülünü yüklediyseniz, AdaptyUI’yı da etkinleştirmeniz gerekir.

Kodunuzda AdaptyUI’yı etkinleştirmeden önce core Adapty modülünü etkinleştirmeniz zorunludur.

İsteğe bağlı olarak, AdaptyUI’yı etkinleştirirken paywall’lar için varsayılan önbellekleme ayarlarını geçersiz kılabilirsiniz.

İsteğe bağlı kurulum

Loglama

Loglama sistemini yapılandırın

Adapty, neler olduğunu anlamanıza yardımcı olmak için hataları ve diğer önemli bilgileri loglar. Aşağıdaki log seviyeleri mevcuttur:

SeviyeAçıklama
errorYalnızca hatalar loglanır
warnHatalar ve kritik hata oluşturmamakla birlikte dikkat edilmesi gereken SDK mesajları loglanır
infoHatalar, uyarılar ve çeşitli bilgi mesajları loglanır
verboseFonksiyon çağrıları, API sorguları gibi hata ayıklamada faydalı olabilecek tüm ek bilgiler loglanır
 let configurationBuilder = AdaptyConfiguration
         .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY") 
         .with(logLevel: .verbose) // recommended for development

Log mesajlarını yönlendirin

Adapty’nin log mesajlarını kendi sisteminize göndermek veya bir dosyaya kaydetmek istiyorsanız setLogHandler metodunu kullanın ve içinde özel loglama mantığınızı uygulayın. Bu handler, mesaj içeriği ve önem seviyesi içeren log kayıtları alır.

Adapty.setLogHandler { record in
    writeToLocalFile("Adapty \(record.level): \(record.message)")
}

Veri politikaları

Adapty, siz açıkça göndermediğiniz sürece kullanıcılarınızın kişisel verilerini depolamaz; ancak mağaza veya ülke yönergelerine uymak için ek veri güvenliği politikaları uygulayabilirsiniz.

IDFA toplama ve paylaşmayı devre dışı bırakın

Adapty modülünü etkinleştirirken IDFA toplama ve paylaşmayı devre dışı bırakmak için idfaCollectionDisabled değerini true olarak ayarlayın.

Bu parametreyi App Store İnceleme Yönergelerine uymak veya IDFA uygulamanız için gerekmediğinde App Tracking Transparency isteminin tetiklenmesini önlemek amacıyla kullanın. Varsayılan değer false’dur. IDFA toplamayla ilgili 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şmayı devre dışı bırakın

Adapty modülünü etkinleştirirken kullanıcı IP adresi toplama ve paylaşmayı devre dışı bırakmak için ipAddressCollectionDisabled değerini true olarak ayarlayın. Varsayılan değer false’dur.

Bu parametreyi kullanıcı gizliliğini artırmak, bölgesel veri koruma yönetmeliklerine (GDPR veya CCPA gibi) uymak ya da IP tabanlı özellikler uygulamanız için gerekmediğinde gereksiz veri toplanmasını azaltmak amacıyla kullanın.

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:

ParametreZorunlulukAçıklama
memoryStorageTotalCostLimitzorunluDepolamanın bayt cinsinden toplam maliyet limiti.
memoryStorageCountLimitzorunluBellek depolamasının öğe sayısı limiti.
diskStorageSizeLimitzorunluDepolamanın disk üzerindeki bayt cinsinden dosya boyutu limiti. 0 sınır 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ı (sunucu tarafı makbuz doğrulama, sahtekarlık tespiti veya özel iş mantığı gibi) gerektiriyorsanız SDK’yı manuel işlem tamamlama 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 iCloud yedekten geri yüklendiğini algılar ve önbelleğe alınmış profil bilgileri, ürün ayrıntıları ve paywall’lar dahil yerel olarak depolanan tüm SDK verilerini siler. SDK ardından temiz bir durumla başlatılır. Varsayılan değer false’dur.

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 katı eşzamanlılık derleme hataları görebilirsiniz. Tipik belirtiler arasında AdaptyUIBuilderLogic içindeki @Sendable özellik uyuşmazlıkları 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 sonraki bir sürüme yükseltin; bu sürüm, karışık Swift dil versiyonlarından bağımsız olarak sorunu giderir.

Geçici çözüm: Yükseltme yapamıyorsanı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"),
]

CocoaPods SWIFT_VERSION geçersiz kılmasından 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 uyuşmazlıkları, Adapty türlerinde eksik Sendable uyumu veya aktör izolasyon hataları yer alır. Adapty pod’ları s.swift_version = '6.0' tanımlar ve derlenmek için Swift 6 gerektirir. Kendi uygulama kodunuz Swift 5’te kalabilir — yalnızca Adapty pod hedefleri (Adapty, AdaptyUI, AdaptyUIBuilder, AdaptyLogger) Swift 6 ile derlenmelidir.

En yaygın neden, Podfile’ınızdaki her pod hedefi için SWIFT_VERSION’ı yeniden yazan bir post_install hook’udur:

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 tutun:

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 SettingsSwift Language Version. Değerin Swift 6 olması gerekir.