iOS SDK'sını 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ı paywallları kolayca oluşturmaya yarayan kodsuz araç olan Adapty Paywall Builder’ı kullanıyorsanız gereklidir.

Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gösteren gerçek bir örnek 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.

Eksiksiz 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ükleyin

Release

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ümleri arasında farklılık gösterebileceğinden, gerekirse Xcode belgelerine başvurun.

  1. Depo URL’sini girin:
    https://github.com/adaptyteam/AdaptySDK-iOS.git
  2. Sürümü seçin (en son kararlı sürüm önerilir) ve Add Package düğmesine tıklayın.
  3. Choose Package Products penceresinde ihtiyacınız olan modülleri seçin:
    • Adapty (çekirdek modül)
    • AdaptyUI (isteğe bağlı - yalnızca Paywall Builder kullanmayı planlıyorsanız)

    Not:

    • Çocuk modunu etkinleştirmek için Adapty yerine Adapty_KidsMode’u seçin.
    • Listeden başka paket seçmeyin – diğerlerine ihtiyacınız olmayacak.
  4. Kurulumu tamamlamak için Add Package düğmesine tıklayın.
  5. Kurulumu doğrulayın: Proje gezgininde Package Dependencies altında “Adapty” (ve seçtiyseniz “AdaptyUI”) görünmelidir.

Adapty iOS SDK 4.0 ön sürüm aşamasındadır. Swift Package Manager, beta sürümlerini Up to Next Major Version (from:) kuralıyla çözemez; bu nedenle tam sürümü sabitlemeniz gerekir. Xcode’da Dependency Rule ayarını Exact Version olarak seçin ve 4.0.0-beta.1 girin. Package.swift dosyasında .exact("4.0.0-beta.1") kullanın. Bkz. Adapty iOS SDK’yı v4’e Taşıma.

Adapty SDK’nın Adapty modülünü etkinleştirin

Adapty SDK’yı uygulama kodunuzda etkinleştirin.

Adapty SDK, 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 gidin.
  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 değiştirin.

Ya da Adapty CLI kullanarak programatik olarak alın:

npm install -g adapty
adapty auth login
adapty apps list

Ya da doğrudan:

npx adapty auth login
adapty apps list
  • Adapty başlatma işlemi için Public SDK key kullandığınızdan emin olun; Secret key yalnızca sunucu taraflı API için kullanılmalıdır.
  • SDK key’leri her uygulama için benzersizdir, bu nedenle 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ıra için iOS SDK’da çağrı sırası sayfasına bakın.

Şimdi uygulamanızda paywallları ayarlayın:

Adapty SDK’nın AdaptyUI modülünü etkinleştirme

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

Kodunuzda, AdaptyUI’ı etkinleştirmeden önce Adapty’nin çekirdek modülünü etkinleştirmeniz gerekir.

İsteğe bağlı olarak, AdaptyUI’ı etkinleştirirken paywall’lar 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 ayarlama

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

SeviyeAçıklama
errorYalnızca hatalar loglanır
warnKritik hatalara yol açmayan ancak dikkat edilmesi gereken hatalar ve SDK mesajları loglanır
infoHatalar, uyarılar ve çeşitli bilgi mesajları loglanır
verboseFonksiyon ç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önlendirin

Adapty’nin günlük mesajlarını kendi sisteminize göndermek veya bir dosyaya kaydetmek istiyorsanız setLogHandler metodunu kullanın ve özel günlük mantığınızı bu metodun içinde uygulayın. Bu işleyici, mesaj içeriğini ve önem düzeyini içeren günlük 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 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 Kuralları’na 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ı özelliklerin uygulamanız için gerekli olmadığı durumlarda gereksiz veri toplamayı azaltmak amacıyla 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:

ParametreZorunlulukAçıklama
memoryStorageTotalCostLimitzorunluDepolama alanının bayt cinsinden toplam maliyet sınırı.
memoryStorageCountLimitzorunluBellek depolamasının öğe sayısı sınırı.
diskStorageSizeLimitzorunluDisk üzerindeki depolama alanının bayt cinsinden dosya boyutu sınırı. 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ına ihtiyaç duyuyorsanız (sunucu tarafı makbuz doğrulaması, dolandırıcılık tespiti veya özel iş mantığı gibi), SDK’yı manuel işlem tamamlama kullanacak şekilde yapılandırabilirsiniz.

let configurationBuilder = AdaptyConfiguration
    .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
    .with(transactionsFinishBehavior: .manual) // .auto varsayılandır

İşlemlerin nasıl tamamlanacağına dair daha fazla ayrıntı için kılavuza bakın.

Yedekten geri yükleme sırasında verileri temizleme

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 detayları 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 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ıyla karşılaşabilirsiniz. Tipik belirtiler arasında AdaptyUIBuilderLogic içindeki @Sendable özniteliği uyuşmazlıkları veya benzeri 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ı korumadığı için meydana gelir. Sonuç olarak, bazı Adapty hedefleri (Adapty, AdaptyUI, AdaptyUIBuilder) Swift 5 kurallarıyla derlenirken diğerleri Swift 6 kullanır ve bu durum modüller arası @Sendable uyumsuzluklarına yol açar.

Düzeltme: Adapty SDK 3.15.5 veya daha yeni bir sürüme yükseltin; bu sürüm, 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 belirtin:

targetSettings: [
  "Adapty": .init().swiftVersion("6"),
  "AdaptyUI": .init().swiftVersion("6"),
  "AdaptyUIBuilder": .init().swiftVersion("6"),
]