# ── Secrets: never commit, never tarball ────────────────────────────────────────────
# The upload key is the app's permanent identity on Play. Back both up off this Mac
# (password manager / encrypted external drive) — not into a repo.
keystore.properties
ios-signing.config
play-service-account.json
keystore/
*.jks
*.keystore
*.p12
*.mobileprovision
ExportOptions.plist

# ── Generated: rebuilt by `npm run sync:web` on every release ───────────────────────
# www/ is a disposable copy of ../server/public. Editing it is always a mistake — the
# next sync wipes it. Change the web app instead.
www/
node_modules/

# ── Build output ────────────────────────────────────────────────────────────────────
build/
dist/
*.ipa
*.aab
*.apk
*.dSYM.zip
*.xcarchive

# ── Machine-specific ────────────────────────────────────────────────────────────────
android/local.properties
android/.gradle/
android/build/
android/app/build/
android/capacitor-cordova-android-plugins/build/
.gradle/

# ── Xcode / SPM ─────────────────────────────────────────────────────────────────────
ios/App/build/
ios/App/Pods/
ios/App/App/public/
ios/App/DerivedData/
ios/.spm-cache/
**/xcuserdata/
**/*.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
.swiftpm/

.DS_Store
