diff --git a/docs/Engineering_Reference_Manual.md b/docs/Engineering_Reference_Manual.md index c3d436f6..df34a8be 100644 --- a/docs/Engineering_Reference_Manual.md +++ b/docs/Engineering_Reference_Manual.md @@ -867,7 +867,7 @@ aggregateOutcomeStats every 24 hours (default ### RevenueCat integration -Both clients use the RevenueCat native SDK (`purchases:8.20.0` on Android, `purchases-ios` via SPM). The SDK handles the platform billing surface (Google Play Billing on Android, StoreKit on iOS) and exposes a normalized `CustomerInfo` API. +Both clients use the RevenueCat native SDK (`purchases:10.12.0` on Android, `purchases-ios:5.x` via SPM - `from: 5.0.0` in `Package.swift`). The SDK handles the platform billing surface (Google Play Billing on Android, StoreKit on iOS) and exposes a normalized `CustomerInfo` API. The Android app reads the API key from `BuildConfig.RC_API_KEY`, which is sourced from `local.properties` or the `RC_API_KEY` env var. A release build with a missing or placeholder key **fails fast** with a `GradleException` from `app/build.gradle.kts` - there is a doFirst guard on every release assemble/bundle task. @@ -1130,8 +1130,9 @@ The iOS CryptoKit implementation follows these rules of parity with Android: - Hilt 2.53.1 - Room 2.6.1 - DataStore 1.1.2 +- Glance 1.1.1 (Today widget) - Firebase BoM 33.8.0 (auth, firestore, messaging, config, analytics, crashlytics, appcheck, appcheck-playintegrity, storage, functions) -- RevenueCat 8.20.0 +- RevenueCat 10.12.0 - Tink 1.13.0, BouncyCastle 1.78.1 - Play Integrity 1.4.0 - Biometric 1.1.0