Expo projesinde yedek paywall kullanımı
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ı projenizin herhangi bir yerine koyun — genellikle diğer varlıkların yanına:
<your-project>/ └── assets/ ├── ios_fallback.json └── android_fallback.json -
app.json(veyaapp.config.js) dosyasındakireact-native-adaptygirişinefallbackFileseçeneğini ekleyin. Her platform anahtarı isteğe bağlıdır — yalnızca ihtiyacınız olan 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 kimlikleri, Android’de Google Play ürün kimlikleri kullanılır. Her platformu kendi dosyasına yönlendirin.
- Native projeleri yeniden oluşturun:
npx expo prebuild
Eklenti, iOS dosyasını Xcode projesinin bundle resource’larına ekler ve Android dosyasını android/app/src/main/assets/ dizinine kopyalar. Prebuild çıktısı şu 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 ile kaydedin:
import { adapty } from 'react-native-adapty'; await adapty.activate('PUBLIC_SDK_KEY');
The file names passed to `setFallback` must match the basenames of the files configured under `fallbackFile`.
:::important
`setFallback`, SDK herhangi bir paywall veya onboarding çekmeden önce çalıştırılmalıdır.
:::
## Doğrulama \{#verification\}
`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.android` altı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.pbxproj` dosyasında iOS dosya adını aratın. `PBXFileReference`, `Resources` grubu ve `PBXResourcesBuildPhase` içinde görünmelidir. Yalnızca Android'e ait dosya adı ise `project.pbxproj` içinde yer almamalıdır.