iOS端Google Sign In调试模式正常,发布/TestFlight模式无法使用
Firebase Google Sign In 发布/TestFlight 失效问题解决方案
1. 立即修正 GoogleService-Info.plist 的位置
- 必须将
GoogleService-Info.plist移入项目目录,再重新添加到Xcode的Runner目标中:- 原因:Xcode发布打包时仅会包含项目目录内的文件,放在系统下载文件夹的文件无法被正确打包,导致Google Sign In在发布模式下无法读取初始化配置。
- 操作步骤:
- 把
GoogleService-Info.plist从下载文件夹复制到Flutter项目的ios/Runner目录下。 - 在Xcode中删除原有的文件引用,重新添加该文件(勾选「Copy items if needed」,确保目标选择Runner)。
- 把
2. 验证Google Cloud控制台的OAuth客户端配置
- 确认Google Cloud控制台中,已为发布版本的Bundle ID创建对应OAuth 2.0客户端ID:
- 调试和发布模式的Bundle ID通常不同(比如调试版带
.debug后缀),若仅配置了调试用的客户端ID,发布模式下会无法触发登录流程。 - 检查路径:Google Cloud控制台 → API和服务 → 凭据 → 找到iOS平台的客户端ID,确认其Bundle ID与发布版本完全一致。
- 调试和发布模式的Bundle ID通常不同(比如调试版带
3. 检查Xcode发布模式的构建配置
- 确保发布模式下未禁用Google Sign In相关依赖:
- 打开Xcode的Runner目标 → Build Settings → 搜索
Other Linker Flags,确认发布模式下包含-ObjC(Google Sign In依赖该标志加载相关类)。 - 查看
Build Phases→Copy Bundle Resources,确认GoogleService-Info.plist已在列表中(重新添加文件后会自动加入)。
- 打开Xcode的Runner目标 → Build Settings → 搜索
4. 确认TestFlight的签名一致性
- 尽管已确认开发者账号签名,仍需检查TestFlight的分发签名配置:
- 在Xcode的Runner目标「Signing & Capabilities」中,确认发布配置的签名团队与Google Cloud控制台关联的开发者账号完全一致。
- 避免开启「Managed by Apple」自动签名导致Bundle ID意外变更。
内容的提问来源于stack exchange,提问作者Kyle Andrew
相关产品推荐
相关产品推荐

