You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
refactor(build): extract Firebase/Google-services into a -Pgoogle-only script so the FOSS build is genuinely Firebase-free (F-Droid) + bump 1.0.7 (#534)
The FOSS build (bare `assembleRelease`) already skipped applying the Firebase
Gradle plugins at runtime, but every Firebase/Google-services coordinate — the
two plugin ids, the Crashlytics per-build-type config, and the firebase-*
dependencies — still lived inline in app/build.gradle.kts, guarded only by
`if (googleBuild)`. F-Droid's source scanner is static, so it still saw those
non-FOSS coordinates in a file that survives into the FOSS build. The fdroiddata
maintainer asked us to remove the non-FOSS deps in prebuild rather than
allow-list them with scanignore.
This extracts ALL Google/Firebase build config into
gradle/google-services.gradle.kts, applied from app/build.gradle.kts ONLY under
`-Pgoogle` (`if (googleBuild) { apply(from = ...) }`). The bare FOSS build never
applies it, so it compiles ZERO Firebase: no plugins on the classpath, no
firebase-* deps, no Crashlytics config, and google-services.json is not required
to assemble it. Verified: aapt2 dump strings on the FOSS APK shows no
firebase/gms strings and the DEX contains no com.google.firebase /
com.google.android.gms classes, while the `-Pgoogle` APK still links Firebase.
The extracted file lives in the repo-root gradle/ dir (not app/) because Android
Lint's build-script visitor (lintVitalRelease, which the FOSS release build runs)
crashes trying to FIR-resolve a standalone apply(from=...) script inside an
Android module; the root project has no Android lint task. Its Crashlytics
mapping/symbol toggles are set by reflection because an apply-script has no AGP /
crashlytics DSL types on its classpath.
The fdroiddata recipe now removes the file in `prebuild:
rm -f gradle/google-services.gradle.kts` before the scanner runs (no
scanignore/scandelete), and the version/toolchain fields + MaintainerNotes are
updated to 1.0.7. Adds changelog 8.txt (build-internal, no user-facing change
vs 1.0.6). Part of #465.
Co-authored-by: Jason Monk <[email protected]>
Co-authored-by: Claude Opus 4.8 <[email protected]>
0 commit comments