iOS集成Google登录遇Error Domain=com.google.GIDSignIn Code=-4问题排查求助
排查GoogleSignIn Error Code=-4的步骤
确认Google Cloud控制台配置
- 登录Google Cloud控制台,找到对应项目的「API和服务」→「凭据」页面,检查iOS类型的OAuth 2.0客户端ID,确保其「Bundle ID」字段与当前应用的Bundle ID完全匹配。
- 下载最新的
GoogleService-Info.plist文件替换项目旧文件,确保文件内的CLIENT_ID、REVERSED_CLIENT_ID、KEYCHAIN_SHARED_GROUP等字段与控制台配置一致。
检查钥匙串权限配置
- 打开Xcode项目的「Signing & Capabilities」标签,确保开启「Keychain Sharing」功能,且添加的共享组包含
GoogleService-Info.plist中KEYCHAIN_SHARED_GROUP对应的组(通常格式为com.googleusercontent.apps.xxxxxx)。 - 若未开启Keychain Sharing,需在
Info.plist中添加keychain-access-groups数组,包含当前应用的Bundle ID和Google对应的钥匙串组。
- 打开Xcode项目的「Signing & Capabilities」标签,确保开启「Keychain Sharing」功能,且添加的共享组包含
验证首次登录流程
- 先跳过
restorePreviousSignIn调用,执行手动登录流程(调用signIn(withPresenting:)方法)完成用户授权。 - 登录成功后退出并重启应用,再调用
restorePreviousSignIn观察是否仍报错。
- 先跳过
清理旧数据
- 卸载设备上的测试应用,清除钥匙串中残留的旧验证令牌(可通过Xcode「Devices and Simulators」面板执行设备的「Erase All Content and Settings」,或在iOS设置中重置钥匙串)。
- 重新编译安装应用,先完成手动登录,再测试自动恢复登录功能。
检查代码硬编码内容
- 全局搜索项目,确认无硬编码的旧Bundle ID、旧CLIENT_ID等内容,所有配置均已更新为当前应用信息。
- 确保
GIDConfiguration初始化时使用的是GoogleService-Info.plist中的CLIENT_ID,而非手动输入的旧值。
内容的提问来源于stack exchange,提问作者litbe
相关产品推荐
相关产品推荐

