Repository navigation
fix(android): carry google-services.json as committed, not the developer's - #151
Merged
Merged
Conversation
…per's The paid Android template commits placeholder Firebase values in app/google-services.json and its developer keeps their real file in the working tree under skip-worktree. The copy took the working-tree file, so every generated app shipped the template developer's Firebase config (with only project_id renamed) and FCM could not issue it a token. Add a committedOnly copy rule that writes a file as the substrate's git has it staged, and use it for app/google-services.json. The placeholder keeps the google-services Gradle plugin (which fails without the file) and the Debug build happy. A non-git substrate gets no file at all. Document it next to the RevenueCat/Sentry notes. Closes #147 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UZJxUoubntzu7Ec7DPVfAr
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #147
What
The paid Android template commits placeholder values in
app/google-services.json(thecom.google.gms.google-servicesGradle plugin fails the build without the file), and its AGENTS.md tells the developer to drop their real Firebase file in undergit update-index --skip-worktree.copySubstratecopied the working-tree file, so every generated app shipped the template developer's Firebase project (onlyproject_id/storage_bucketrenamed) and FCM could not issue a token.CopySkipRules.committedOnly: root-relative files written as the substrate's git has them staged (git show :./<path>), never from the working tree. Not in git / not tracked → the file is left out.ANDROID_SKIP_RULES.committedOnly = ["app/google-services.json"].docs/OUTPUT-CHECKLIST.md2.3 updated.Why the placeholder instead of omitting the file
Checked on the real paid substrate:
./gradlew :app:processDebugGoogleServicespasses with the placeholder and fails withFile google-services.json is missingwithout it. Omitting the file would fail Layer 2 build mode on every paid run. The placeholder gives exactly the template's out-of-the-box behaviour (builds, push inactive until you add your own file). A non-git substrate gets no file (nothing tells the placeholder from a real one), documented in the README.Tests
google-services.jsonin the copy.npm run ci: 162/162 pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01UZJxUoubntzu7Ec7DPVfAr