Skip to content

fix: FirebaseProvider claimed visionOS support Firebase does not have (2.1.1) - #15

Merged
AndrewKochulab merged 1 commit into
masterfrom
fix/firebase-visionos
Aug 18, 2026
Merged

fix: FirebaseProvider claimed visionOS support Firebase does not have (2.1.1)#15
AndrewKochulab merged 1 commit into
masterfrom
fix/firebase-visionos

Conversation

@AndrewKochulab

Copy link
Copy Markdown
Owner

Found by dry-running the CocoaPods validation before publishing, rather than discovering it after an irreversible trunk push.

The bug

The package advertised visionOS for the Firebase adapter. Firebase gates FirebaseAnalytics to iOS/macCatalyst/macOS/tvOS — no visionOS. So:

swift build --traits Firebase --triple arm64-apple-xros1.0-simulator
# error: no such module 'FirebaseAnalytics'

Present in both 2.0.0 and 2.1.0.

Same mistake in the podspec: the Firebase, Mixpanel and Bugsnag subspecs inherited visionOS from the root spec while the vendors' own podspecs omit it, so pod lib lint failed on four errors. Each subspec now declares the platform set its dependency actually supports.

Worth noting the two manifests legitimately differ here: Mixpanel and Bugsnag do build for visionOS under SwiftPM — only their CocoaPods specs leave it out.

Why CI missed it

The gap was shaped exactly like the bug:

Job Platforms Traits
platforms all 5 none
providers macOS host only all 4

No provider adapter was ever compiled for a non-host platform — precisely where a vendor's own platform gating bites. The full matrix, run locally, isolates it:

          iOS       tvOS      watchOS   visionOS  macOS
Firebase  ok        ok        ok        FAIL      ok
Facebook  ok        ok        ok        ok        ok
Mixpanel  ok        ok        ok        ok        ok
Bugsnag   ok        ok        ok        ok        ok

This PR adds a provider-platforms job covering all 20 combinations. Verified locally that it fails on the unfixed code and passes on the fix.

Consequence for CocoaPods

2.0.0 and 2.1.0 cannot be published to the trunk — their podspecs fail validation for this reason, and correcting them would mean rewriting already-published tags. 2.1.1 will be the first 2.x on CocoaPods; pod users go from 1.0.0 straight to it, skipping both affected versions.

SwiftPM users on 2.1.0 are unaffected unless they build the Firebase trait for visionOS.

Verification

  • Full provider × platform matrix green (20/20)
  • pod lib lint --allow-warnings, all subspecs, all platforms: passed (previously 4 errors)
  • 96 tests, 0 lint violations, zero-dependency invariant intact, iOS integration build OK

No API or behaviour changes.

🤖 Generated with Claude Code

… (2.1.1)

Found by dry-running the CocoaPods validation before publishing, rather than
discovering it after an irreversible trunk push.

The package advertised visionOS for the Firebase adapter, but Firebase gates
FirebaseAnalytics to iOS/macCatalyst/macOS/tvOS. Enabling the Firebase trait on
a visionOS target failed with `no such module 'FirebaseAnalytics'`. Present in
both 2.0.0 and 2.1.0.

The same mistake in the podspec: the Firebase, Mixpanel and Bugsnag subspecs
inherited visionOS from the root spec while the vendors' own podspecs omit it,
so `pod lib lint` failed. Each subspec now declares the platform set its
dependency actually supports. Mixpanel and Bugsnag do build for visionOS under
SwiftPM — only their CocoaPods specs leave it out — so the two manifests
legitimately differ there.

CI had a gap shaped exactly like this bug. `platforms` built all five platforms
but with NO traits enabled; `providers` built all four traits but only for the
macOS host. No adapter was ever compiled for a non-host platform, which is
precisely where a vendor's own platform gating bites. Adds a `provider-platforms`
job covering all 20 provider x platform combinations; verified locally that it
fails on the unfixed code and passes on the fix.

No API or behaviour changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@AndrewKochulab
AndrewKochulab merged commit 6cb0184 into master Aug 18, 2026
30 checks passed
@AndrewKochulab
AndrewKochulab deleted the fix/firebase-visionos branch August 18, 2026 22:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant