Skip to content

fix(expo): declare AppCheckCore modular dependencies - #1519

Merged
vonovak merged 2 commits into
react-native-google-signin:masterfrom
eliotgevers:codex/fix-expo-appcheckcore-modular-headers
Jul 27, 2026
Merged

fix(expo): declare AppCheckCore modular dependencies#1519
vonovak merged 2 commits into
react-native-google-signin:masterfrom
eliotgevers:codex/fix-expo-appcheckcore-modular-headers

Conversation

@eliotgevers

Copy link
Copy Markdown
Contributor

Summary

Fix Expo iOS prebuild failures with the current GoogleSignIn / AppCheckCore pod graph by declaring the pods that need modular headers from the Expo adapter podspec.

Why

Fresh Expo 56 installs with @react-native-google-signin/google-signin@16.1.2 can resolve GoogleSignIn 9.2.0 and AppCheckCore 11.3.0. In Expo's default static CocoaPods setup, CocoaPods then fails because AppCheckCore is a Swift pod that depends on GoogleUtilities and RecaptchaInterop, which do not define modules unless modular headers are enabled.

Expo autolinking already enables modular headers for direct dependencies of Expo modules with native code. The Expo adapter is this package's Swift Expo module, so declaring the specific AppCheckCore dependency pods there lets Expo apply its normal modular-header handling without requiring generated Podfile edits or an AppCheckCore version pin.

What Changed

Added these direct dependencies to ExpoAdapterGoogleSignIn.podspec so Expo marks them modular:

  • GoogleUtilities/Environment
  • GoogleUtilities/UserDefaults
  • RecaptchaInterop

Validation

Created a fresh Expo 56 repro app:

npx create-expo-app@latest rngsi-expo56-repro --template blank-typescript --yes
cd rngsi-expo56-repro
npm install @react-native-google-signin/google-signin@16.1.2
npx expo prebuild --clean --platform ios

Baseline failed during pod install:

The Swift pod `AppCheckCore` depends upon `GoogleUtilities` and `RecaptchaInterop`,
which do not define modules.

After applying this patch:

rm -rf ios/Pods ios/Podfile.lock ios/build/DerivedData
npx expo prebuild --platform ios --no-install
cd ios && pod install --repo-update
xcodebuild -workspace rngsiexpo56repro.xcworkspace \
  -scheme rngsiexpo56repro \
  -configuration Debug \
  -sdk iphonesimulator \
  -destination 'platform=iOS Simulator,name=iPhone 17' \
  -derivedDataPath build/DerivedData \
  build

Results:

  • pod install succeeds.
  • xcodebuild succeeds.
  • The resulting lockfile keeps GoogleSignIn 9.2.0, AppCheckCore 11.3.0, and RecaptchaInterop 101.0.0.

Closes #1517.

Added dependencies for GoogleSignIn and related modules.
@vonovak

vonovak commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Thanks; afaict this works for expo, but the community cli users will need to specify modular_headers for these pods.

@vonovak
vonovak merged commit 8594b76 into react-native-google-signin:master Jul 27, 2026
2 checks passed
github-actions Bot pushed a commit that referenced this pull request Jul 27, 2026
## [16.1.4](v16.1.3...v16.1.4) (2026-07-27)

### Bug Fixes

* **expo:** declare AppCheckCore modular dependencies ([#1519](#1519)) ([8594b76](8594b76))

⭐ **Tip**: there's a [paid version of the package](https://universal-sign-in.com/#pricing) with a [new implementation](https://react-native-google-signin.github.io/docs/one-tap), advanced [security features](https://react-native-google-signin.github.io/docs/security), support for [web](https://react-native-google-signin.github.io/docs/setting-up/web), and more features.
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 16.1.4 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expo 56 prebuild error

2 participants