fix: disable Firebase diagnostics data collection - #1053
Conversation
FirebaseCoreDiagnostics is linked into both app targets and starts from the unconditional `[FIRApp configure]` in AppDelegate. Once a day it sends Google a proto containing the bundle ID, device model, iOS version, Firebase SDK versions and the list of installed Firebase services, via GoogleDataTransport. FIRCoreDiagnostics.sendDiagnosticsData bails out when `FirebaseDataCollectionDefaultEnabled` is false, but the key was absent from both Info.plists, so it defaulted to enabled. Set it explicitly. This only gates diagnostics/telemetry collection; Firebase Storage operations (the Explore Dash merchant database download) are unaffected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughBoth app property lists add ChangesFirebase collection defaults
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This localized configuration change disables Firebase diagnostics collection for both app targets without changing app functionality or Firebase Storage behavior. No actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What
Adds
FirebaseDataCollectionDefaultEnabled = falseto both app targets' Info.plists.Why
This came out of a community question in the Russian Telegram group asking whether analytics/tracking are enabled in the new iOS build. The good news is there is no analytics SDK in the iOS app — no FirebaseAnalytics, no GoogleAppMeasurement, Crashlytics, Mixpanel, Amplitude, Sentry or AppsFlyer are linked, there are zero
logEvent/trackEventcall sites, and there is no IDFA/ATT surface at all.But
FirebaseCoreDiagnosticsis linked into both targets (it is a transitive dependency ofFirebaseCore), and it starts from the unconditional[FIRApp configure]atDashWallet/AppDelegate.m:113. Up to once per day it sends Google a proto over GoogleDataTransport containing:FIRCoreDiagnostics.sendDiagnosticsDatareturns early whenFirebaseDataCollectionDefaultEnabledis false:That key was absent from both
DashWallet/Info.plistandDashPay/dashpay-info.plist, so it defaulted to enabled. This PR sets it explicitly.Scope
The flag gates Firebase's diagnostics/telemetry collection only. Firebase Storage operations — the Explore Dash merchant database download from
gs://dash-wallet-firebase.appspot.com— are unaffected, as is everything else in the app.Verification
plutil -lintpasses on both plists.plutil -extract FirebaseDataCollectionDefaultEnabled rawreturnsfalsefor both.Info.plist-only change; no source or build-setting changes.
Related
Two companion PRs address the other two outbound channels found in the same audit: the unused Firebase Dynamic Links SDK (which fingerprints the device on first launch) and a per-foreground IP geolocation lookup to ip-api.com.
🤖 Generated with Claude Code
Summary by CodeRabbit