You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter无Firebase集成Google登录iOS端报invalid_audience错误

Flutter iOS端非Firebase Google登录invalid_audience报错解决方案

核心报错原因

你遇到的invalid_audience: Audience is not a valid client ID错误,本质是OAuth授权流程中客户端ID、回调URL Scheme配置不匹配,导致授权服务校验受众身份失败。

分步修复方案

  • 第一步:修正URL Scheme与Client ID的匹配问题
    你当前配置存在明显的ID不匹配问题:
    1. 代码中传入的iOS Client ID为618518636914-abd.apps.googleusercontent.com
    2. 但Info.plist中配置的回调URL Scheme为com.googleusercontent.apps.618518636914-abc
      两个ID的后缀部分(abd/abc)不一致,回调时会直接触发校验失败。
      修正规则:URL Scheme的固定格式为com.googleusercontent.apps.拼接你的iOS Client ID中.apps.googleusercontent.com前面的部分,和Client ID必须完全一一对应,不能有字符差异。按你当前代码里的Client ID,正确的Scheme配置应为:
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>com.googleusercontent.apps.618518636914-abd</string>
        </array>
    </dict>
    
  • 第二步:校验客户端ID类型与包名匹配
    确认你代码中传入的clientId确实是Google Cloud后台创建的iOS平台类型OAuth客户端ID,不要误用Web端、Android端的客户端ID;同时确认该iOS客户端ID配置页填写的Bundle ID,和你Xcode项目中实际的Bundle Identifier完全一致(区分大小写)。
  • 第三步:清理构建缓存重新编译
    配置修改后禁止直接热重载,需要完全清理缓存重新构建,执行以下命令:
    flutter clean
    flutter pub get
    cd ios && pod install --repo-update
    
    执行完成后重新运行项目到iOS设备即可测试。

关于AppAuth版本的说明

你使用的google_sign_in: ^5.3.2版本,iOS端默认依赖的AppAuth版本为1.6.0,该版本不存在audience校验相关的已知Bug,不需要手动修改Podfile调整AppAuth版本。

低优先级排查项

如果以上步骤操作完成后仍报错,可检查两项配置:

  • OAuth同意屏幕如果处于「测试中」状态,需要把你测试用的Google账号添加到测试用户列表中
  • 确认你没有在Info.plist中额外配置错误的GIDClientID键值,避免和代码中传入的Client ID冲突

内容的提问来源于stack exchange,提问作者Sanketh B. K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 00:24:31