GoogleSignIn 8.0.0

GoogleSignIn 8.0.0

许可证 Apache-2.0
发布的最新发布2024年8月

GoogleWei ChaoPeter AndrewsMatthew MathiasYana Sang 维护。



 
依赖
AppCheckCore~> 11.0
AppAuth< 2.0, >= 1.7.3
GTMAppAuth< 5.0, >= 4.1.1
GTMSessionFetcher/Core~> 3.3
 

  • Google LLC

Version Platform License unit_tests integration_tests

适用于 iOS 和 macOS 的 Google Sign-In

通过使用用户已经使用并信任的注册系统(即他们的 Google 账户),快速且安全地将用户引入您的应用程序。

访问 我们的开发者网站 获取集成说明、文档、支持信息和服务条款。

入门

请尝试 Objective-CSwift 示例应用程序。例如,为了演示 Objective-C 示例项目,您有三个选择

  1. 使用 CocoaPodstry 方法
pod try GoogleSignIn

注意,这将默认为您提供 Objective-C 示例应用程序。

  1. 使用 CocoaPod 的 install 方法
git clone https://github.com/google/GoogleSignIn-iOS
cd GoogleSignIn-iOS/Samples/ObjC/SignInSample/
pod install
open SignInSampleForPod.xcworkspace
  1. 使用 Swift Package Manager
git clone https://github.com/google/GoogleSignIn-iOS
open GoogleSignIn-iOS/Samples/ObjC/SignInSample/SignInSample.xcodeproj

如果您想查看 Swift 示例,请查看 Samples/Swift/DaysUntilBirthday

macOS 上的 Google Sign-In

Google Sign-In 允许用户使用他们的 Google 账户和默认浏览器登录您的原生 macOS 应用。在为 macOS 构建时,`signInWithConfiguration:` 和 `addScopes:` 方法使用 `presentingWindow:` 参数代替 `presentingViewController:`。请注意,为了使您的 macOS 应用能够在 macOS 上通过密钥链存储凭证,您需要签名您的应用

Mac Catalyst

Google Sign-In 也支持通过 Mac Catalyst 构建的 iOS 应用。如果您的 Mac Catalyst 应用需要在 macOS 上通过密钥链存储凭证,您需要签名您的应用

使用 Google Sign-In 按钮

有几种方法可以在您的应用中添加“使用 Google 登录”按钮,您选择哪种方法取决于您的 UI 框架和目标平台。

SwiftUI (iOS 和 macOS)

在 SwiftUI 中创建“使用 Google 登录”按钮可以像这样简单:

GoogleSignInButton {
  GIDSignIn.sharedInstance.signIn(withPresenting: yourViewController) { signInResult, error in
      // check `error`; do something with `signInResult`
  }
}

此示例利用初始化器的视图模型默认参数。默认参数将使用浅色方案、标准按钮样式和常规按钮状态。您可以使用具有不同属性值的 GoogleSignInButtonViewModel 实例来定制按钮。此便捷初始化器提供了您可以根据需要设置这些值的参数。

UIKit (iOS)

如果您不使用 SwiftUI 来构建用户界面,您可以通过编程方式创建 GIDSignInButton,或者使用 Xib/Storyboard。如果您正在编写编程 UI 代码,它看起来将类似于以下这样

let button = GIDSignInButton(frame: CGRect(<YOUR_RECT>))

AppKit (macOS)

由于 GIDSignInButton 是作为 UIControl 的子类实现的,因此在 macOS 上不可用。您可以改用 SwiftUI Google 登录按钮。这样做需要将 SwiftUI 按钮包装在一个宿主视图中,以便在 AppKit 中使用。

let signInButton = GoogleSignInButton {
  GIDSignIn.sharedInstance.signIn(withPresenting: yourViewController) { signInResult, error in
      // check `error`; do something with `signInResult`
  }
}
let hostedButton = NSHostingView(rootView: signInButton)