chore: upgrade Capacitor 7 to 8 (and Firebase 11 to 12)#54
Merged
Conversation
Coordinated upgrade following the official Capacitor 8 migration guide. Firebase rides along because @capacitor-firebase/authentication 8.x requires firebase ^12.6.0 as a peer dependency. - @capacitor/core, ios, android, cli → 8.3.0 - All @capacitor/* plugins → 8.x - @capacitor-firebase/authentication → 8.2.0 (firebase 11 → 12.11.0) - @capacitor-mlkit/barcode-scanning → 8.0.1 - @capawesome-team/capacitor-nfc → 8.1.0 - @capawesome/capacitor-live-update → 8.2.1 - @capacitor-community/keep-awake → 8.0.0 - @capgo/capacitor-shake → 8.0.24 - @revenuecat/purchases-capacitor → 12.3.1 - capacitor-plugin-safe-area → 5.0.0 - capacitor-zeroconf left at 4.0.0 (no v8 release; permissive peer dep) Android: minSdk 23 → 24, compile/target 35 → 36, AGP 8.7.2 → 8.13.0, Gradle 8.11.1 → 8.14.3, google-services 4.4.2 → 4.4.4, all androidx versions bumped per the upgrade guide, density added to configChanges, Gradle property name = value syntax fix in app/build.gradle. iOS: project deployment target 14.0 → 15.0 (Capacitor 8 minimum). App target deployment kept at 15.5. Fixed pre-existing stale pnpm path in Podfile for CapacitorFirebaseAuthentication/Google. Source: tightened !barcode guards to !barcode?.rawValue in useScanOperations.tsx and create.mappings.tsx — barcode-scanner v8 made Barcode.rawValue optional. New tests cover both branches. Cleanup: removed dead <uses-sdk minSdkVersion="10"> from AndroidManifest.xml (overridden by build.gradle since AGP 7), removed androidxCameraCoreVersion override that was causing camera library version skew with the v8 plugin defaults, added the missing androidxCredentialsPlayServicesAuthVersion sibling override to align with androidxCredentialsVersion, narrowed eslint .claude ignore to .claude/worktrees/**. Supersedes Dependabot PRs #48 #49 #51 #52, which will auto-resolve once this lands on main.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Summary
Coordinated upgrade of Capacitor 7 → 8 following the official migration guide. Firebase 11 → 12 rides along because
@capacitor-firebase/authentication@8.xrequiresfirebase ^12.6.0.Plugins
@capacitor/*core + plugins → 8.x@capacitor-firebase/authentication→ 8.2.0 (firebase→ 12.11.0)@capacitor-mlkit/barcode-scanning→ 8.0.1@capawesome-team/capacitor-nfc→ 8.1.0@capawesome/capacitor-live-update→ 8.2.1@capacitor-community/keep-awake→ 8.0.0@capgo/capacitor-shake→ 8.0.24@revenuecat/purchases-capacitor→ 12.3.1capacitor-plugin-safe-area→ 5.0.0capacitor-zeroconfleft at 4.0.0 (no v8 release; permissive peer dep)Android
minSdk23→24,compile/targetSdk35→36, AGP 8.7.2→8.13.0, Gradle 8.11.1→8.14.3,google-services4.4.2→4.4.4, allandroidxversions bumped per the upgrade guide,densityadded toconfigChanges,name = valueGradle property syntax fix inapp/build.gradle.iOS
Project deployment target 14.0 → 15.0 (Capacitor 8 minimum). App target deployment kept at 15.5. Fixed pre-existing stale pnpm path in
PodfileforCapacitorFirebaseAuthentication/Googleleft over from the npm migration.Source code
Tightened
!barcodeguards to!barcode?.rawValueinuseScanOperations.tsxandcreate.mappings.tsx—@capacitor-mlkit/barcode-scanningv8 madeBarcode.rawValueoptional. New tests cover both branches.Cleanup picked up along the way
<uses-sdk minSdkVersion="10">fromAndroidManifest.xml(overridden bybuild.gradlesince AGP 7).androidxCameraCoreVersionoverride that was causing camera library version skew with the v8 plugin defaults.androidxCredentialsPlayServicesAuthVersionsibling override to align withandroidxCredentialsVersion..claudeignore to.claude/worktrees/**.Supersedes
Dependabot PRs #48, #49, #51, #52 — they will auto-resolve once this lands on
main.Release
Cannot ship as a Capawesome live update — the native bridge changed. Requires a store release with version bumps in
package.json,android/app/build.gradle, andios/App/App.xcodeproj/project.pbxproj.