Files

33 lines
1.8 KiB
Markdown

# 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
1. Copy `Configuration/Services.local.xcconfig.example` to
`Configuration/Services.local.xcconfig`.
2. Set `REVENUECAT_API_KEY` to your RevenueCat public Apple SDK key and set
`REVENUECAT_ENTITLEMENT_ID` to the entitlement configured in your project.
Never put a private RevenueCat management key in an app build.
3. Create `Configuration/Firebase/` and download your own Firebase Apple app's
`GoogleService-Info.plist` there. Its bundle ID must match the app being built.
4. 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.