Skip to content

fix(expo): avoid AppCheckCore Google Sign-In regression#8895

Closed
mikepitre wants to merge 1 commit into
mainfrom
mike/expo-google-modular-headers
Closed

fix(expo): avoid AppCheckCore Google Sign-In regression#8895
mikepitre wants to merge 1 commit into
mainfrom
mike/expo-google-modular-headers

Conversation

@mikepitre

@mikepitre mikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Emergency unblock for iOS prebuild failures caused by the latest Google Sign-In pod graph.

Fresh pod installs can resolve GoogleSignIn 9.2.0, which allows AppCheckCore 11.3.0. AppCheckCore 11.3.0 adds RecaptchaInterop; in Expo's default static CocoaPods setup that can fail unless apps add extra modular-header configuration.

Rather than mutating generated app Podfiles, this PR constrains ClerkGoogleSignIn away from the problematic AppCheckCore version for now:

  • keep GoogleSignIn ~> 9.0
  • add AppCheckCore < 11.3.0

This keeps fresh installs on the known-working AppCheckCore 11.2.x graph and avoids pulling in RecaptchaInterop.

Why this shape

The earlier Podfile-mutation approach fixed the immediate failure, but it quickly became brittle because Podfiles can have custom targets, existing pod declarations, and use_expo_modules! variants. This emergency fix avoids editing user Podfiles entirely.

Validation

  • Previously reproduced the failing fresh pod graph: GoogleSignIn 9.2.0, AppCheckCore 11.3.0, RecaptchaInterop 101.0.0.
  • Verified a fresh CocoaPods resolution with GoogleSignIn ~> 9.0 plus AppCheckCore < 11.3.0 resolves:
    • GoogleSignIn 9.2.0
    • AppCheckCore 11.2.0
    • no RecaptchaInterop
  • Ran ruby -c packages/expo/ios/ClerkGoogleSignIn.podspec.

Summary by CodeRabbit

  • Bug Fixes
    • Fixed iOS prebuild failures affecting Google Sign-In integration in the Expo package by adding a dependency constraint. This resolves build issues users may encounter during iOS app development and improves stability when implementing Google Sign-In authentication.

@changeset-bot

changeset-bot Bot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 7bddbbe

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@clerk/expo Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview, Comment Jun 17, 2026 5:24pm
swingset Ready Ready Preview, Comment Jun 17, 2026 5:24pm

Request Review

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The ClerkGoogleSignIn.podspec gains an AppCheckCore CocoaPods dependency pinned to versions below 11.3.0, with inline comments explaining that 11.3.0 introduces a RecaptchaInterop dependency that breaks static CocoaPods integration. A patch changeset entry documents this fix for @clerk/expo.

Changes

AppCheckCore Dependency Pin for Expo iOS

Layer / File(s) Summary
AppCheckCore pin in podspec and patch changeset
packages/expo/ios/ClerkGoogleSignIn.podspec, .changeset/expo-google-appcheckcore-pin.md
Adds AppCheckCore < 11.3.0 as a constrained dependency with comments noting the RecaptchaInterop breakage in 11.3.0; patch changeset entry records the fix.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

  • clerk/javascript#8867: Directly overlaps with this PR — both adjust iOS dependency versions in the @clerk/expo package configuration, specifically around AppCheckCore-related version management.

Suggested reviewers

  • wobsoriano

Poem

🐇 A pod pinned low, a version kept back,
No RecaptchaInterop sneaking in on the track.
AppCheckCore below eleven point three,
Keeps the iOS build hopping happy and free!
Patch bump logged, the rabbit hops on. 🌿

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'fix(expo): avoid AppCheckCore Google Sign-In regression' directly and specifically summarizes the main change—addressing an iOS prebuild failure caused by AppCheckCore version compatibility with Google Sign-In by constraining the AppCheckCore dependency.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@pkg-pr-new

pkg-pr-new Bot commented Jun 17, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8895

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8895

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8895

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8895

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8895

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8895

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8895

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8895

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8895

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8895

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8895

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8895

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8895

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8895

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8895

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8895

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8895

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8895

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8895

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8895

commit: 7bddbbe

@mikepitre mikepitre requested a review from wobsoriano June 17, 2026 16:48
@mikepitre mikepitre marked this pull request as ready for review June 17, 2026 16:49
@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T17:26:13.639Z

Summary

Metric Count
Packages analyzed 19
Packages with changes 0
🔴 Breaking changes 0
🟡 Non-breaking changes 0
🟢 Additions 0

No API Changes Detected

All packages have stable APIs with no detected changes.


Report generated by Break Check

Last ran on 7bddbbe.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/expo/app.plugin.js`:
- Around line 35-37: The pod detection logic using exact string matching in the
filter function checking GOOGLE_SIGN_IN_MODULAR_HEADER_PODS is too rigid and
fails to recognize valid pod declarations that use alternative syntax (such as
double quotes instead of single quotes, or using modular_headers: true instead
of :modular_headers => true). Replace the exact string matching approach with a
more flexible pattern (such as a regular expression) that can detect if a pod is
already declared with modular_headers enabled regardless of quote style or
symbol format, ensuring the filter correctly identifies truly missing pods and
prevents duplicate pod entries.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: d88e7d60-388a-47b3-bd52-4a7e6f32902a

📥 Commits

Reviewing files that changed from the base of the PR and between f4ecc13 and 7a4f9b4.

📒 Files selected for processing (3)
  • .changeset/expo-google-modular-headers.md
  • packages/expo/app.plugin.js
  • packages/expo/src/__tests__/appPlugin.googleSignInPods.test.js

Comment thread packages/expo/app.plugin.js Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d8c33d55a2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/expo/app.plugin.js Outdated
Comment thread packages/expo/app.plugin.js Outdated
Comment thread packages/expo/app.plugin.js Outdated
@mikepitre mikepitre force-pushed the mike/expo-google-modular-headers branch from d8c33d5 to 7bddbbe Compare June 17, 2026 17:22
@mikepitre mikepitre changed the title fix(expo): configure Google Sign-In modular headers fix(expo): avoid AppCheckCore Google Sign-In regression Jun 17, 2026
@mikepitre mikepitre closed this Jun 17, 2026
@mikepitre mikepitre deleted the mike/expo-google-modular-headers branch June 17, 2026 20:27
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.

1 participant