Bir Expo projesinde yedek paywall'ları kullanma
Bu kılavuz Expo projeleri için geçerlidir. Saf React Native (Expo olmayan) kullanıyorsanız, bunun yerine saf React Native yedek paywall kılavuzunu izleyin.
Akıcı bir kullanıcı deneyimi sürdürebilmek için flow’larınız, paywall’larınız ve onboarding’leriniz için yedekler ayarlamanız önemlidir. Bu önlem, kısmi veya tam internet bağlantısı kaybı durumunda uygulamanın işlevselliğini korur.
-
Uygulama Adapty sunucularına erişemiyorsa:
Yedek flow veya paywall gösterebilir ve yerel onboarding yapılandırmasına erişebilir.
-
Uygulama internete erişemiyorsa:
Yedek flow veya paywall gösterebilir. Onboarding’ler uzak içerik barındırdığından çalışabilmek için internet bağlantısı gerektirir.
Bu kılavuzdaki adımları izlemeden önce yedek yapılandırma dosyalarını Adapty’den indirin.
Adapty SDK, yedek dosyasını native bundle’dan okur; iOS’ta .app paketinin içindeki bir kaynak dosyası, Android’de ise android/app/src/main/assets/ altındaki bir girdi olarak yer alır. Expo projelerinde npx expo prebuild --clean komutu her çalıştırıldığında bu dizinleri yeniden oluşturur, bu yüzden dosyaları manuel olarak ekleyemezsiniz. react-native-adapty config plugin, dosyayı native bundle’a sizin yerinize bağlar.
Tam çalışan bir örnek kurulum FocusJournalExpo örnek uygulamasında mevcuttur.
Yapılandırma
-
Yedek JSON dosyalarını projenizde herhangi bir yere yerleştirin — genellikle diğer asset’lerin yanına:
<your-project>/ └── assets/ ├── ios_fallback.json └── android_fallback.json -
app.json(veyaapp.config.js) içindekireact-native-adaptygirdisinefallbackFileseçeneğini ekleyin. Her platform anahtarı isteğe bağlıdır — yalnızca ihtiyaç duyduğunuz platformları bağlayın:{ "expo": { "plugins": [ [ "react-native-adapty", { "fallbackFile": { "ios": "./assets/ios_fallback.json", "android": "./assets/android_fallback.json" } } ] ] } }Adapty her platform için farklı bir yedek JSON dışa aktarır — iOS’ta Apple ürün ID’leri, Android’de Google Play ürün ID’leri. Her platformu kendi dosyasına yönlendirin.
-
Yerel projeleri yeniden oluşturun:
npx expo prebuildEklenti, iOS dosyasını Xcode projesinin paket kaynaklarına ekler ve Android dosyasını
android/app/src/main/assets/içine kopyalar. Prebuild çıktısı şuna benzer satırlar içerir:[react-native-adapty] Registered ios_fallback.json as iOS bundle resource [react-native-adapty] Copied android_fallback.json to android assets/ -
Dosyayı çalışma zamanında SDK’ya kaydedin:
import { adapty } from 'react-native-adapty'; await adapty.activate('PUBLIC_SDK_KEY'); await adapty.setFallback({ ios: { fileName: 'ios_fallback.json' }, android: { relativeAssetPath: 'android_fallback.json' }, });setFallback’e geçirilen dosya adları,fallbackFilealtında yapılandırılan dosyaların temel adlarıyla (basename) eşleşmelidir.
setFallback, SDK hedef flow’u, paywall’ı veya onboarding’i getirmeden önce çalışmalıdır.
Doğrulama
npx expo prebuild çalıştırdıktan sonra her iki platformu da kontrol edin:
- Android:
android/app/src/main/assets/dizininin içeriğini listeleyin.fallbackFile.androidaltında yapılandırılan dosya burada bulunmalı, yalnızca iOS’a ait dosya adı ise burada görünmemelidir. - iOS:
ios/<ProjectName>.xcodeproj/project.pbxprojdosyasında iOS dosya adını aratın.PBXFileReference,Resourcesgrubu vePBXResourcesBuildPhaseiçinde görünmelidir. Yalnızca Android’e ait dosya adı iseproject.pbxprojiçinde yer almamalıdır.