# pod install fails: react-native-firebase SPM + static linkage is not supported

> react-native-firebase defaults to pulling Firebase through Swift Package Manager.

Web page: https://davidewins.com/errors/rnfirebase-spm-static-linkage

iOS. Confirmed fix, 11 September 2026.

Versions: Expo SDK 57, @react-native-firebase, use_frameworks static (needed by a video calling SDK)

Error:

```
[!] [react-native-firebase] SPM + static linkage is not supported (target(s): ...). firebase-ios-sdk's Swift Package products are automatic libraries (not `type: .dynamic`), so each react-native-firebase pod that resolves Firebase via SPM embeds its own copy.
```

## Cause

react-native-firebase defaults to pulling Firebase through Swift Package Manager. Combined with `useFrameworks: "static"` each pod embeds its own Firebase copy, which collides at link time.

## Fix

Opt out of SPM through the RNFB config plugin in app.config:
```ts
["@react-native-firebase/app", { ios: { disableSPM: true } }],
```
This writes `$RNFirebaseDisableSPM = true` into the generated Podfile before any target block. Run `pod install` (or a new EAS build) again.

## More iOS errors

- [iOS build fails in react-native-skia: 'third_party/base64.h' file not found](https://davidewins.com/errors/skia-base64-h-not-found-use-frameworks)
- [Dev build fails codesigning: provisioning profile doesn't include the Apple Pay capability](https://davidewins.com/errors/apple-pay-entitlement-dev-bundle-id)
- [EAS iOS build stops at signing: provisioning profile expired](https://davidewins.com/errors/eas-expired-provisioning-profile-noninteractive)
- [Fresh SDK upgrade fails at pod install with a Mapbox clash, while a sibling app on the same SDK builds](https://davidewins.com/errors/mapbox-pod-install-after-fresh-expo-install)

[Search all errors](https://davidewins.com/errors)
