未发布
- 修复了当服务器错误响应在其
error键下包含非字符串值时发生的崩溃问题。EMM 错误处理程序将-hasPrefix:发送到了存在的任何值,从而在数字、数组或对象上引发了无法识别的选择器异常。 - 修复了在设备政策应用重启后继续登录时,自定义
nonce和请求的令牌claims被丢弃的问题。 - 为 AppCheckCore 12.x 添加了 Swift Package Manager 支持,从而实现与 Firebase 13 的兼容。CocoaPods 安装仍仅限于 AppCheckCore 11.x。(#626)
- 修复了失败的 App Check 准备工作被记录为成功的问题,该问题导致后续对
-[GIDSignIn configureWithCompletion:]的调用报告成功,而未重试。(#626) - 在 AppCheckCore 11.x(包括所有 CocoaPods 安装)中,既不返回令牌也不返回错误的自定义 App Check 提供方现在会被视为成功,而不是失败并显示
kGIDAppCheckUnexpectedError。(#626) - 修复了
GIDGoogleUser令牌上的数据争用问题。并发令牌更新可能会同时从不同线程写入访问令牌、刷新令牌和 ID 令牌,而读取器可能会观察到部分更新的集合。这三个令牌现在会作为一个快照一起发布。 GIDGoogleUser的accessToken、refreshToken和idToken现在都派生自该快照,因此,只要其中任何一个属性发生更改,而不仅仅是该属性自身的值发生更改,系统就会通知其中任何一个属性的键值对观察器。- 当
GIDGoogleUser保持其内部锁定时,这些属性的键值对观察器会收到通知。从观察器回调到同一用户是可以的,但观察器不得在正在更新同一用户的另一个线程上同步等待(例如使用dispatch_sync)。 - 修复了以下问题:在没有可用关键窗口的情况下,如果出现单个错误,EMM 修复对话框会在应用的剩余生命周期内被抑制。现在,pending-dialog 标志会在每个退出路径上清除,并且其清除写入操作会与读取操作同步。
- 修复了以下问题:当无法显示任何修复对话框时,失败并出现 EMM 错误的令牌请求有时会报告底层 OAuth 错误,而不是
kGIDSignInErrorCodeEMM。 - 修复了以下问题:在修复对话框已显示时收到的 EMM 错误被报告为
kGIDSignInErrorCodeUnknown(或对于令牌请求,报告为底层 OAuth 错误),而不是kGIDSignInErrorCodeEMM。不会显示第二个对话框。
10.0.0
- 重大变更:更新到 AppAuth 3.0.0 和 GTMAppAuth 6.0.0,这会将最低部署目标提高到 iOS 15.0 和 macOS 12.0,扩大
GTMSessionFetcher依赖项以允许 4.x 和 5.x,并将特定于版本的 Swift Package Manager 清单重命名为Package@swift-5.7.swift。如果项目必须继续支持较低的操作系统版本,则应继续使用 GoogleSignIn 9.2.0。(#628) - 添加了
GIDSignIn.wrapperIdentifier,以便嵌入 Google 登录的 SDK 可以通过新的gidwrapper参数在 Google 的诊断日志中进行自我标识。此功能需要选择启用,且不会改变现有行为。(#625) - 将登录按钮图标更新为渐变色 Google G (#633)
- 使用显式
NS_SWIFT_NAME注解固定GIDClaim工厂方法的 Swift 名称;导入的 Swift 名称保持不变 (#627) - 使用
NSURLComponents正确编码令牌 (#618) - 修复了
emmSupport为nil时additionalTokenRefreshParameters中发生崩溃的问题 (#608) - 内部
9.2.0
- 公开刷新令牌失效日期 (#577)
- 支持请求
amr(身份验证方法参考)声明 (#600) - 在全新安装时移除钥匙串条目 (#567)
- 将 AppAuth-iOS 依赖项的最低版本更新为 2.1.0 (#603)
- 修复了本地化字符串的可选 bundle 处理问题 (#373)
- 在伞形标头中无条件包含所有公共标头 (#595)
- 将
GIDSignInButton导入移至条件编译之外 (#591) - 内部
9.1.0
- 允许通过登录方法请求
claims(目前仅限auth_time)(#550、#552、#553、#569) - 更新了
GIDSignIn中的addScopes:方法,以包含之前请求的claims(#557) - 内部
9.0.0
- 允许通过 GSI 向 AppAuth 提供自定义
nonce(#402、#476) - 修复了
GIDSignIn中的无效错误代码 (#472) - 在 macOS 上添加了对 GTMAppAuth 5 的支持 (#522)
- 修复了 Data Protected 迁移 bug (#533)
- 内部
- 将 AppAuthCore 添加为显式依赖项 (#470)
- 将 iPhone 模拟器从 14 更新到 15 (#494)
- 修复了 Swift 按钮集成测试 (#497)
- 将运行器更新为 macos-13 (#498)
- 更新
scorecards.yml以使用upload-artifact@v4.6.2(#516) - 更新了 AppAuth 和 GTMAppAuth 依赖项(#517、#521)
- 修复了回访用户的 Swift 集成测试 (#518)
- 更新
.gitignore以包含 .build 和 Package.resolved (#520) - 更新了 GIDSignInTest,以正确设置和拆解 NSUserDefaults (#527)
8.0.0
- 正式发布版本,添加了 Firebase App Check 支持,以便在使用 Google 账号登录时验证应用的完整性
- 将 iOS 最低支持版本更新为 iOS 12 (#445)
- 内部
7.1.0-fac-beta-1.1.0
- Beta 版,支持使用 Firebase App Check 令牌在用户使用 Google 账号登录时验证应用的完整性
- 添加了对 v7.1.0 中发布的隐私清单的支持
- 内部
- 查看集成测试,了解提交前说明 (#368)
- 测试跳过集成键 (#374)
- 向 App Check 发布分支添加隐私清单 (#392)
- 在 GIDFakeFetcherService 标头中为 init 添加返回值类型
7.1.0
7.1.0-fac-beta-1.0.0
- Beta 版,支持使用 Firebase App Check 令牌在用户使用 Google 账号登录时验证应用的完整性
- 内部
7.1.0-fac-eap-1.0.0
- 抢先体验计划 (EAP) 版本,支持使用 Firebase App Check 令牌在用户使用 Google 账号登录时验证应用的完整性
- 使用
-[GIDSignIn configureWithCompletion:]在应用中尽早配置 GSI 以使用 Firebase App Check,从而最大限度地缩短延迟时间。 - 在调试 build 或持续集成环境中使用
-[GIDSignIn configureDebugProviderWithAPIKey:completion:]。 - 新增了示例应用,展示了如何配置 GSI 以使用 Firebase App Check。
- 使用
- 内部
7.0.0
- 现在,所有配置都可以通过
Info.plist文件提供。(#228)- 使用
<key>KEY</key><string>VALUE</string>对中的以下键来配置 SDK:GIDClientID(必需)GIDServerClientID(可选)GIDHostedDomain(可选)GIDOpenIDRealm(可选)
- 使用
- 支持 Swift 并发。(#187)
- API Surface 改进(#249、#228、#187)
GIDSignIn- 新的
configuration属性。 - 从
signIn:方法中移除了Configuration:参数。 - 移除了
addScopes:,并将其添加到了GIDGoogleUser。 - 对于采用块的异步方法,将
callback:参数重命名为completion:。
- 新的
GIDGoogleUser- 新的
configuration属性。 - 新增了从
GIDSignIn移出的addScopes:方法。 - 移除了
authentication属性,并将其替换为:- 新的
accessToken属性。 - 新的
refreshToken属性。 - 新的
idToken属性。 - 新的
fetcherAuthorizer属性。 - 新增了
refreshTokensIfNeededWithCompletion:方法。
- 新的
- 新的
- 新增了
GIDToken类,用于表示GIDGoogleUser中的访问令牌、刷新令牌和 ID 令牌。 - 新增了
GIDSignInResult类,用于表示成功的 signIn 或 addScopes 流程的结果。 - 移除了
GIDSignInCallback、GIDDisconnectCallback和GIDAuthenticationAction块类型定义。
6.2.4
- 更新了 GTMSessionFetcher 依赖项,以允许使用 2.x 版本。(#207)
6.2.3
- 修复了使用 CocoaPods use_frameworks! 时 GoogleSignInSwift 中的资源加载问题。(#197)
- 防止在某些情况下使用 Swift Package Manager 时出现 GoogleSignInSwift 构建错误。(#166)
6.2.2
6.2.1
- 使用
GoogleSignInSwiftSupport作为 Swift 支持 CocoaPod 的名称。(#137)
6.2.0
6.1.0
6.0.2
- 确保在作为库构建时可以使用模块导入。 (#53)
6.0.1
- 修复了未针对 signIn 和 addScopes 方法调用嵌套回调的问题。 (#29)
6.0.0
- iOS 版 Google 登录现已开源。
- Swift Package Manager 支持。
- 支持在 M1 Mac 上使用模拟器。
- API Surface 更新
GIDSignInsharedInstance现在是一个类属性。signIn现在为signInWithConfiguration:presentingViewController:callback:,并且始终请求基本个人资料范围。addScopes:presentingViewController:callback:是一种新方法,可向当前登录的用户添加基本个人资料以外的范围。restorePreviousSignIn现更名为restorePreviousSignInWithCallback:。disconnect现更名为disconnectWithCallback:。GIDSignInDelegate协议已被移除,取而代之的是GIDSignInCallback和GIDDisconnectCallback代码块。- 所有登录流程配置属性都已移至
GIDConfiguration。
- 添加了
GIDConfiguration类,用于表示登录用户所需的配置。 GIDAuthenticationgetTokensWithHandler:现更名为doWithFreshTokens:。GIDAuthenticationHandlertypedef 已重命名为GIDAuthenticationAction。refreshTokensWithHandler:已被移除,请改用doWithFreshTokens:。
GIDSignInButton不再在内部调用GIDSignIn,需要连接到IBAction或类似对象,以便您调用signInWithConfiguration:presentingViewController:callback:来启动登录流程。
5.0.2
- 修复了以下问题:当用户在登录流程中取消 iOS 的意见征求对话框时,系统会向
signIn:didSignInForUser:withError:发送错误的错误代码。
5.0.1
- 修复了在 iOS 13 上无法正确启动登录流程的问题。
- ZIP 分发需要 Xcode 11 或更高版本。
5.0.0
- GIDSignIn 的变更
uiDelegate已替换为presentingViewController。hasAuthInKeychain已替换为hasPreviousSignIn。signInSilently已替换为restorePreviousSignIn。- 移除了已废弃的
kGIDSignInErrorCodeNoSignInHandlersInstalled错误代码。
- 对 GIDAuthentication 的更改
- 移除了已废弃的
getAccessTokenWithHandler:和refreshAccessTokenWithHandler:方法。
- 移除了已废弃的
- 对 GIDGoogleUser 的更改
- 移除了已废弃的属性
accessibleScopes,请改用grantedScopes。
- 移除了已废弃的属性
- 添加了对 AppAuth 和 GTMAppAuth 的依赖项。
- 移除了对 GoogleToolboxForMac 的依赖。
- 不再支持 iOS 7。
4.4.0
- 移除了对 GTM OAuth 2 的依赖。
4.3.0
- 支持 Google 的企业移动管理。
4.2.0
- 向
GIDGoogleUser添加了grantedScopes,以便在成功登录后确认已授予哪些范围。 - 弃用
GIDGoogleUser中的accessibleScopes,请改用grantedScopes。 - 针对 hi(印地语)和 fr-CA(法语 [加拿大])对
GIDSignInButton进行本地化。 - 添加对系统
LocalAuthentication框架的依赖项。
4.1.2
- 为 GoogleSignIn CocoaPod 添加了
pod try支持。
4.1.1
- 修复了在 iOS 11 上未调用
GIDSignInUIDelegate的signInWillDispatch:error:的问题。请注意,在 iOS 11 上,signIn:presentViewController:和signIn:dismissViewController:都不会被调用,因为 SFAuthenticationSession 不是由应用的视图控制器呈现的。
4.1.0
- 在 iOS 11 上使用 SFAuthenticationSession。
4.0.2
- 不再依赖于 GoogleAppUtilities。
4.0.1
- 切换到开源 Pod 依赖项。
- 登录按钮的外观不再取决于请求的范围。
4.0.0
- GoogleSignIn pod 现在采用静态框架的形式。在 Objective-C 中使用
#import <GoogleSignIn/GoogleSignIn.h>导入。 - 添加了模块支持。如果模块已启用,您还可以在 Objective-C 中使用
@import GoogleSignIn;,在 Swift 中使用import GoogleSignIn,而无需使用桥接头。 - 对于独立 zip 分发的用户,现在提供了多个框架,并且都需要添加到项目中。这种分解方式在存在重复依赖项时提供了更大的灵活性。
- 从
GIDSignIn中移除了已废弃的方法checkGoogleSignInAppInstalled。 - 从
GIDSignIn中移除allowsSignInWithBrowser和allowsSignInWithWebView属性。 - 无需再将软件包 ID 添加为应用支持的网址协议。
3.0.0
- 在
GIDProfileData上提供givenName和familyName属性。 - 允许在
GIDSignIn上设置loginHint属性,以便在登录流程中预填充用户的 ID 或电子邮件地址。 - 从
GIDSignInButton中移除了UIViewController(SignIn)类别以及delegate属性。 - 要求已在
GIDSignIn上正确设置uiDelegate,并且已关联 SafariServices 框架。 - 移除了对 StoreKit 的依赖。
- 提供位码支持。
- 由于位码与 Xcode 6 不兼容,因此需要 Xcode 7.0 或更高版本。
2.4.0
- 使用新 Google 徽标更新登录按钮。
- 支持登录网域限制。
- 允许刷新 ID 令牌。
2.3.2
- 不再需要 Xcode 7。
2.3.1
- 修复了
GIDProfileData的imageURLWithDimension:中发生崩溃的问题。
2.3.0
- 需要使用 Xcode 7.0 或更高版本。
- 在 iOS 9 上使用 SFSafariViewController 进行登录。必须设置
uiDelegate才能正常运行。 - 优化了用户个人资料的提取。
- 支持 GIDAuthentication 中的 GTMFetcherAuthorizationProtocol。
2.2.0
- 与 iOS 9(Beta 版)兼容。请注意,此版本的登录 SDK 不包含位码,因此如果您使用 Xcode 7,则必须在项目中将 ENABLE_BITCODE 设置为 NO。
- 为 GIDSignInButton 的自动布局约束条件添加了描述性标识符。
signInSilently不再需要设置uiDelegate。
2.1.0
- 修复了 GIDSignInButton 的自动布局问题。
- 在 GIDAuthentication 中添加了用于刷新访问令牌的 API。
- 针对 GIDSignIn 中未分配的 clientID 提供了更完善的异常说明。
- 修复了一些其他小 bug。
2.0.1
- 问题修复
2.0.0
- 支持通过 UIWebView 登录,而不是通过应用切换到浏览器,可使用新的
allowsSignInWithWebView属性进行配置。 - 现在,如果应用通过
allowsSignInWithBrowser属性停用了应用切换到浏览器功能,并通过allowsSignInWithWebView属性停用了应用内网页视图功能,则可以选择显示提示,指示用户从应用商店下载 Google 应用。 - 修复了启用自动布局时登录按钮大小不正确的问题
- 现在,当
hasAuthInKeychain为NO时,signInSilently会按照文档说明调用委托并返回错误 - 修复了一些其他小 bug
1.0.0
- 采用全新 API 的新版 SDK,专注于登录功能
- 动态呈现的登录按钮,带有情境品牌信息
- 基本配置文件支持
- 添加了 allowsSignInWithBrowser 属性