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

MacOS应用Google登录点击Continue后无响应问题求助

解决MacOS应用Google登录点击Continue无响应问题

针对你用Swift Package Manager集成Google登录组件,点击Continue后无反应的情况,按以下步骤排查修复:

1. 检查Google Cloud控制台的回调配置

  • 确保在Google Cloud控制台的「API和服务」→「凭据」中,你的OAuth 2.0客户端ID对应的已获授权的重定向URI包含:com.googleusercontent.apps.{{你的客户端ID}}:/oauth2callback
  • 客户端ID要和你Info.plist里配置的完全一致

2. 完善Info.plist的配置

在项目的Info.plist中添加以下必要配置:

  • 添加CFBundleURLTypes数组,其中包含字典项:
    • CFBundleURLSchemes:数组,值为com.googleusercontent.apps.{{你的客户端ID}}
  • 添加GIDClientID键,值为你的Google OAuth客户端ID
  • 确认NSAppTransportSecurity配置未限制HTTPS请求(默认无需额外修改,若有自定义配置,保证不阻断Google相关域名的访问)

3. 确认GIDSignIn代理设置与回调实现

  • 在调用登录方法前,必须设置代理:
GIDSignIn.sharedInstance.delegate = self
  • 确保你的类遵循GIDSignInDelegate协议,并实现核心回调方法:
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
    if let error = error {
        print("登录失败:\(error.localizedDescription)")
        return
    }
    // 处理登录成功逻辑,比如获取用户令牌
    let idToken = user.authentication.idToken
    let accessToken = user.authentication.accessToken
}

func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {
    // 处理登出或连接断开逻辑
}

4. 调用signIn时传入正确的presentingWindow

MacOS环境下,必须传入应用窗口实例以确保回调能正常触发,避免使用无参的signIn()方法:

if let mainWindow = NSApplication.shared.windows.first {
    GIDSignIn.sharedInstance.signIn(withPresenting: mainWindow)
}

5. 检查应用签名与权限

  • 确保你的MacOS应用已用开发证书正确签名,未签名应用无法接收OAuth回调
  • 确认系统偏好设置→安全与隐私→隐私→网络中,你的应用已被允许访问网络

6. 验证SPM组件版本

检查Xcode的「Package Dependencies」中GoogleSignIn组件的版本,建议更新到最新稳定版,旧版本可能存在MacOS适配缺陷。

内容的提问来源于stack exchange,提问作者jameri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:26:12