Adapty React Native SDK'yı v4.1'e Geçir

Adapty React Native SDK 4.1, Adapty Attribution’ın nasıl etkinleştirileceğini değiştiriyor, harici attribution API’larını yeniden adlandırıyor ve yedek dosya formatını değiştiriyor. Ayrıca uygulamanın App Store’da tanıtılan uygulama içi satın almaları devralmasına izin veriyor ve AdaptyFlow üzerindeki hasViewConfiguration bayrağını geri getiriyor.

Warning

Yeniden adlandırılan API’ler kesin bir kırılmadır. Eski adlar tamamen kaldırılmıştır — aralarında köprü kuracak hiçbir deprecated takma ad yoktur. 4.0.x’e karşı tip kontrolü geçen kod, aşağıda listelenen her çağrı noktasını yeniden adlandırana kadar 4.1’de derlenmeyecektir.

Hâlâ 3.x sürümündeyseniz önce v4.0’a geçiş kılavuzunu takip edin, ardından bu kılavuza devam edin.

Hızlı başvuru

v4.0v4.1
Adapty Attribution varsayılan olarak etkinAdapty Attribution varsayılan olarak devre dışı; adaptyAttributionEnabled: true ile etkinleştirin
adapty.updateAttribution(attribution, source)adapty.updateExternalAttribution(attribution, provider)
AttributionSourceAdaptyExternalAttributionProvider, yeni 'custom' değeriyle
AdaptyProfile.appliedAttributionSourcesAdaptyProfile.appliedExternalAttributionProviders
4.0 için indirilen yedek dosyaYeni yedek dosya formatı; dosyayı yeniden indirin
Tanıtılan uygulama içi satın almalar otomatik olarak tamamlanır, araya girme imkânı yoktur'onPromotedPurchaseReceived' eventi ve adapty.makePromotedPurchase(product) tamamlamayı uygulamanıza bırakır
hasViewConfiguration, AdaptyFlow üzerinde mevcut değilhasViewConfiguration, AdaptyFlow üzerinde geri geldi
iOS projesi CocoaPods ile entegreCocoaPods veya saf React Native projesinde React Native’in SPM entegrasyonu

Kurulum

react-native-adapty paketini güncelleyin:

npm install react-native-adapty@latest
# or
yarn add react-native-adapty@latest

Çalışma zamanı gereksinimleri 4.0’dan bu yana değişmedi: iOS 15.0 ve React Native 0.75. Tam kurulum için Adapty SDK’yı Yükle bölümüne bakın.

4.1 ayrıca React Native’in SPM entegrasyonunu destekler; bu, iOS projenizde CocoaPods’un yerini alır ve React Native 0.87 veya üzerini gerektirir. Yalnızca saf React Native projelerini kapsar, CocoaPods varsayılan olmaya devam eder ve geçiş isteğe bağlıdır — bkz. iOS projenizi kurma. Uygulamanız Kids Mode kullanıyorsa, her paket yöneticisi bunu farklı şekilde uygular.

⚠️ Adapty Attribution varsayılan olarak devre dışıdır

Warning

SDK 4.1’e günceller ve etkinleştirmezseniz, Adapty Attribution sessizce bozulur — kurulumlar kayıt altına alınmayı bırakır ve hiçbir uyarı görmezsiniz.

4.0 ve önceki sürümlerde SDK, Adapty Attribution için kurulumları otomatik olarak kaydediyordu. 4.1’den itibaren bu özellik varsayılan olarak kapalıdır: SDK kurulumları kaydetmez, 'onInstallationDetailsSuccess' ve 'onInstallationDetailsFail' olayları hiçbir zaman tetiklenmez ve getCurrentInstallationStatus not_available durumunu döndürür.

Adapty Attribution kullanıyorsanız, SDK’yı etkinleştirirken bunu açın:

  adapty.activate('YOUR_PUBLIC_SDK_KEY', {
+   adaptyAttributionEnabled: true,
  });

Adapty Attribution kullanmıyorsanız herhangi bir değişiklik yapmanıza gerek yoktur.

Yeniden adlandırılan harici attribution API’leri

Harici bir sağlayıcıdan (Adjust, AppsFlyer, Branch, Tenjin veya özel bir sağlayıcı) attribution verisi ileten API’ler, native SDK’larla uyumlu olması için yeniden adlandırıldı.

updateAttribution → updateExternalAttribution

Metot yeniden adlandırıldı ve ikinci parametresi source’dan provider’a yeniden adlandırıldı. Attribution verisi hâlâ düz bir nesnedir:

- await adapty.updateAttribution(attribution, 'adjust');
+ await adapty.updateExternalAttribution(attribution, 'adjust');

AttributionSource → AdaptyExternalAttributionProvider

Sağlayıcı türünün adı değiştirildi. Açık bir birleşim olma özelliğini koruyor — önceden tanımlı değerler şunlar: 'apple_search_ads', 'adjust', 'appsflyer', 'branch', 'tenjin' ve Adapty’nin doğrudan entegrasyon sağlamadığı sağlayıcılar için yeni eklenen 'custom'. Başka herhangi bir string de kabul ediliyor; böylece Adapty’nin ileride ekleyeceği bir sağlayıcı SDK güncellemesi gerektirmeden çalışıyor:

- import type { AttributionSource } from 'react-native-adapty';
+ import type { AdaptyExternalAttributionProvider } from 'react-native-adapty';

AdaptyProfile.appliedAttributionSources → appliedExternalAttributionProviders

Profile’a uygulanan attribution sağlayıcılarını listeleyen profil özelliği yeniden adlandırıldı ve eleman türü de buna göre değişti:

- if (profile.appliedAttributionSources?.includes('apple_search_ads')) {
+ if (profile.appliedExternalAttributionProviders?.includes('apple_search_ads')) {
      // Apple Ads attribution has been applied
  }

Bu özelliği okuyan kodun güncellenmesi gerekiyor — bkz. Apple Ads hedefli paywall gösterme.

Yedek dosyalar

Yedek dosya formatı SDK 4.1 ile değişti. Dosyayı Placements > Fallbacks bölümünden tekrar indirip uygulamanıza ekleyin; 4.0 için daha önce indirmiş olsanız bile.

Warning

Bu adım herhangi bir derleme hatası vermez. Atlarsanız setFallback eski dosyayı reddeder ve tüm placement’larınız yedekten yoksun kalır.

hasViewConfiguration, AdaptyFlow’a geri döndü

4.0 sürümünde AdaptyPaywall, AdaptyFlow olarak yeniden adlandırıldığında hasViewConfiguration kaldırılmıştı. 4.1 sürümü bunu AdaptyFlow üzerinde geri getirir; böylece v3 dönemindeki bir hasViewConfiguration dalı, işlevi ve okuduğu nesneyi yeniden adlandırdıktan sonra tekrar çalışmaya başlar:

- if (paywall.hasViewConfiguration) {
-   const view = await createPaywallView(paywall);
+ if (flow.hasViewConfiguration) {
+   const view = await createFlowView(flow);
    await view.present();
  }

4.0’da flag yokken, görünüm yapılandırması olmayan bir flow için createFlowView bir AdaptyError fırlatır. Bu durum 4.1’de de geçerlidir — flag, hatayı yakalamaya alternatif bir yaklaşımdır, yerine geçmez. Bkz. Görünüm yapılandırmasını al.

App Store’da tanıtılan uygulama içi satın almalar

4.0’da, App Store ürün sayfanızda tanıtılan bir uygulama içi satın alma kendi kendine tamamlanır ve Adapty işlemi diğerleri gibi kaydederdi; ancak uygulamanızın bunu durdurmanın bir yolu yoktu. 4.1, bu kanca özelliğini ekliyor. Dolayısıyla bu, bir geçiş adımı değil tamamen yeni bir yetenektir: kendi kodunuzu yazmadan da SDK tanıtılan satın almaları sizin için tamamlamaya devam eder.

Tamamlamayı kendiniz üstlenmek için yalnızca kod yazın; örneğin önce bir ekran göstermek istiyorsanız. Yeni 'onPromotedPurchaseReceived' olayı için bir dinleyici kaydedin ve satın almayı adapty.makePromotedPurchase ile tamamlayın. Bu dinleyici kayıtlıyken SDK, promosyon satın almalarını sizin adınıza tamamlamayı bırakır.

Warning

Hook, StoreKit 2 üzerine inşa edilmiştir ve iOS 16.4 veya daha yenisini gerektirir. iOS 16.4’ün altında olay hiçbir zaman tetiklenmez ve promosyon satın almaları 4.0’daki gibi tamamlanır. Olay, Android’de de hiçbir zaman tetiklenmez.