fix(app): align Firebase plugins for SwiftPM - #12304
Conversation
Failure-Class: none
|
Verified the version algebra behind this fix, and it checks out:
One merge gate before this lands: #11676 defines acceptance as an actual iOS archive with the flag removed, and neither this PR (local disk-full, honestly disclosed — thanks) nor CI (the Build/iOS jobs are skipped on this PR) has produced one. SPM resolution happens in Xcode, so a green Tight, well-scoped fix — thanks, and credit for adding the regression contract. by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with |
What changed and why
Align
firebase_crashlyticswith the repository'sfirebase_core3.13 family and remove the temporary Flutter Swift Package Manager opt-out. A contract test locks the compatible plugin set so the skew cannot silently return.Closes #11676
Product invariants affected
none
How it was verified
flutter pub get --enforce-lockfile— resolved the checked-in lockfile without changes.flutter test test/unit/flutterfire_spm_contract_test.dart— the aligned Firebase versions and enabled SPM contract passed.firebase_auth,firebase_messaging, andfirebase_crashlyticsplugin manifests — each now requires thefirebase_core3.13 family.bash scripts/analyze_ratchet.sh— analyzer ratchet passed.pod install, thenflutter build ipa --release --flavor dev --no-codesign— Flutter added SwiftPM integration and resolved the native graph successfully, including Firebase iOS SDK 11.15.0 plus alignedfirebase_core3.13.0,firebase_auth5.5.3,firebase_crashlytics4.3.5, andfirebase_messaging15.2.5. No Firebase/SwiftPM version conflict occurred.watchOS 26.2 must be installed in order to archive the scheme, not package resolution or compilation skew. A signed maintainer/Codemagic archive is still the final acceptance gate.Tests
Failure-Class: none