Skip to content

Google Sign-In hangs indefinitely on iOS (TestFlight) — suspected FF_REVERSED_CLIENT_ID placeholder not replaced in Info.plist #7307

Description

@Daniel-web211

Can we access your project?

  • I give permission for members of the FlutterFlow team to access and test my project for the sole purpose of investigating this issue.

Current Behavior

On a real iOS device via TestFlight, tapping "Continue with Google" successfully opens the Google web consent screen (accounts.google.com) and the user can complete authentication. Firebase Authentication console confirms the sign-in succeeds (the Google-linked user's last sign-in timestamp updates correctly).

However, after the user taps "Continue" on the Google consent screen, the app never receives control back — it just stays on the same page indefinitely, with no error message and no crash log (checked iOS Settings > Privacy & Security > Analytics Data — no crash report generated). None of the subsequent actions in the button's Action Flow (Custom Action, Firestore Query, Navigate To) get executed.

Notably, if the Google account is already cached (silent re-authentication, no web consent screen shown), the flow completes successfully and navigates correctly. The failure only occurs when the full web-based consent screen is shown and the user taps "Continue."

What we've already tried (none resolved the issue):

  • Regenerated Firebase config files via Settings & Integrations > Firebase > Regenerate Config Files
  • Rebuilt and redeployed to App Store Connect / TestFlight (Build 2 → Build 3)
  • Confirmed the iOS OAuth Client exists in Google Cloud Console (Credentials page) for Bundle ID com.wangsc.selfhealingapp
  • Verified the button's Action Flow logic is correctly configured

Suspected root cause: we found a community post describing what appears to be the exact same issue — the generated ios/Runner/Info.plist containing an unreplaced placeholder "FF_REVERSED_CLIENT_ID" instead of the actual REVERSED_CLIENT_ID value from GoogleService-Info.plist, persisting even after regenerating config files:
https://community.flutterflow.io/ask-the-community/post/google-sign-in-crashes-on-ios-because-ff-reversed-client-id-is-not-Xs3JL3CGLNqJ5py

Bundle ID: com.wangsc.selfhealingapp
Firebase Project: selfhealingapp-8510b

Expected Behavior

After completing the Google web consent screen and tapping "Continue," the app should receive the authentication result and continue executing the remaining actions in the Action Flow (calculate result, query Firestore, navigate to the result page), the same way it does when using cached/silent authentication.

Steps to Reproduce

  1. Open the app on a real iOS device (installed via TestFlight)
  2. Log out if already logged in
  3. Tap "開始體質測驗" (Start Constitution Quiz) on HomePage
  4. Answer all 30 quiz questions (any answers)
  5. On question 30, tap "用Google繼續" (Continue with Google)
  6. The Google account chooser screen (accounts.google.com) appears
  7. Select a Google account and tap "繼續" (Continue) on the consent screen
  8. Observe: the app stays on the same question-30 page indefinitely. No error, no crash, no navigation occurs.

Note: this only happens when the full web consent screen is shown. If the Google session is already cached (silent re-auth, no consent screen), the flow completes successfully.

Reproducible from Blank

  • The steps to reproduce above start from a blank project.

Bug Report Code (Required)

IT4ChfHl8ZJgoeVc7arAacFvryQsKUg4RYIV0dYbGQ8aJ5POD7AQP8nRP1dUOcO5TVVUfE2kmXwX/Mr2heLPCPoVEzieRbpC+LpXEBXxczqQWrKYBpS3b3xPGd5hFUyb15mN2yV4CMZqLn9nwV2MDOmQcHLtNYzSIFUzBOaoXdeK2SrDX1iXc2URm05KZDPz

Visual documentation

Image Image

Environment

- FlutterFlow version: (latest, as of July 2026)
- Platform: iOS (real device via TestFlight, not simulator or Test Mode web preview)
- Bundle ID: com.wangsc.selfhealingapp
- Build: 1.0.0 (3)
- Authentication: Firebase Auth with Google Sign-In provider
- Firebase Project: selfhealingapp-8510b

Additional Information

This issue is currently blocking end-to-end testing of our subscription/purchase flow, since new users cannot complete the required Google sign-in step to reach the pages beyond the quiz. We've been unable to find a workaround since FlutterFlow does not expose the iOS Info.plist / URL Scheme configuration for manual editing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: needs triageA potential issue that has not been confirmed as a bug.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions