Local service configuration
The repository does not contain Firebase project configuration or RevenueCat SDK
keys. Both app targets use Services.xcconfig for Debug and Release builds.
Without a local Firebase plist or RevenueCat key, the corresponding service stays
unconfigured. Crashlytics symbol upload is disabled by default. This does not
bypass Pro feature access checks.
Configure your own services
- Copy
Configuration/Services.local.xcconfig.exampletoConfiguration/Services.local.xcconfig. - Set
REVENUECAT_API_KEYto your RevenueCat public Apple SDK key and setREVENUECAT_ENTITLEMENT_IDto the entitlement configured in your project. Never put a private RevenueCat management key in an app build. - Create
Configuration/Firebase/and download your own Firebase Apple app'sGoogleService-Info.plistthere. Its bundle ID must match the app being built. - To upload Crashlytics symbols from Release builds, also uncomment
FIREBASE_UPLOAD_SYMBOLS = YES. Runtime diagnostics still require user consent.
The local xcconfig and Firebase plist are ignored by Git. There is no Firebase
example plist: the build copies the real file only when it exists, and removes a
previously bundled copy when it does not. A missing plist also skips symbol upload.
CI can provision the same ignored files from its secret store, or pass RevenueCat
and symbol-upload build-setting overrides to xcodebuild. Never publish those
files or build logs containing their values.
Firebase client configuration and RevenueCat public SDK keys are shipped in app binaries; they are not server-side secrets. Keeping them out of this repository prevents forks from accidentally using the production services, but does not replace Firebase API restrictions, security rules, or private credential rotation.