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 local overrides, Firebase stays unconfigured, Crashlytics symbol upload
is disabled, and RevenueCat purchases are unavailable. 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. - Download your own Firebase Apple app's
GoogleService-Info.plisttoConfiguration/Firebase/GoogleService-Info.plist. Its bundle ID must match the app being built. UncommentFIREBASE_CONFIG_PATHin the local xcconfig. - 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. Keep the tracked
Firebase example unconfigured: its intentionally mismatched bundle ID prevents
SDK initialization. CI can provision the same ignored files from its secret
store, or pass 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.