Google Sign-In iOS and macOS SDK Release Notes

  • Version 9.0.0 adds support for a custom nonce, fixes an error code, supports GTMAppAuth 5 on macOS, and resolves Data Protected migration bugs.

  • Version 8.0.0 introduces Firebase App Check support to enhance application integrity during sign-in and updates the minimum iOS support to iOS 12.

  • Version 7.1.0 and related betas added Firebase App Check support and privacy manifest support.

  • Version 7.0.0 allows configuration via Info.plist, adds Swift Concurrency support, and includes significant API surface improvements to GIDSignIn and GIDGoogleUser.

  • Earlier versions introduced features such as macOS support, a SwiftUI sign-in button, the ability to request additional scopes, various bug fixes, open source release, Swift Package Manager support, and updates to dependencies and API structures.

Unreleased

  • BREAKING: Updated the AppAuth dependency to 3.0.0 and the GTMAppAuth dependency to 6.0.0.
  • BREAKING: Raised the minimum deployment targets to iOS 15.0 and macOS 12.0, matching the new floor set by AppAuth 3.0.0. Projects that must keep supporting earlier OS versions should stay on GoogleSignIn 9.2.0.
  • Renamed the version-specific Swift Package Manager manifest from Package@swift-5.5.swift to Package@swift-5.7.swift, since AppAuth 3.0.0 requires swift-tools-version 5.7 or later.
  • Widened the GTMSessionFetcher dependency to allow 4.x and 5.x, matching GTMAppAuth 6.0.0.
  • Add GIDSignIn.wrapperIdentifier so SDKs that embed Google Sign-In can self-identify in Google's diagnostic logs via a new gidwrapper parameter. It is opt-in and default behavior is unchanged.
  • Pinned the Swift names of the GIDClaim factory methods with explicit NS_SWIFT_NAME annotations. The imported Swift names are unchanged (authTime(), essentialAuthTime(), amr() and essentialAMR()); they no longer depend on the Objective-C importer's implicit renaming heuristics.

9.2.0

  • Expose the refresh token expiration date (#577)
  • Support requesting the amr (Authentication Methods References) claim (#600)
  • Remove keychain entries on a fresh install (#567)
  • Update the AppAuth-iOS dependency minimum to 2.1.0 (#603)
  • Fix optional bundle handling for localized strings (#373)
  • Include all public headers unconditionally in the umbrella header (#595)
  • Move GIDSignInButton import outside of conditional compilation (#591)
  • Internal
    • Fix Swift Package Manager deprecation warnings (#579)
    • Improve doc comment for GIDSignInButtonStyle (#204)
    • Resolve unassigned child warning in the AppIcon asset catalog (#348)
    • Refactor GitHub Actions workflow (#580)
    • Upgrade GitHub Actions to the latest versions for Node 24 compatibility (#592, #593)

9.1.0

  • Allow requesting claims (currently, only auth_time) via Sign-in methods (#550, #552, #553, #569)
  • Update addScopes: methods in GIDSignIn to include previously requested claims (#557)
  • Internal
    • Assign to keychainStore asap in initializer (#540)
    • Add support for Swift 6 (#543, #544, #546)
    • Update GitHub Actions workflows (#545, #570)
    • Update the DaysUntilBirthday sample app to support auth_time claim (#555)
    • Rename tokenClaims to claims throughout the code (#568)

9.0.0

  • Allow providing a custom nonce via GSI to AppAuth (#402, #476)
  • Fix invalid error code in GIDSignIn (#472)
  • Add support for GTMAppAuth 5 on macOS (#522)
  • Fix Data Protected migration bugs (#533)
  • Internal
    • Add AppAuthCore as explicit dependency (#470)
    • Update iPhone simulator from 14 to 15 (#494)
    • Fix swift button integration test (#497)
    • Update runner to macos-13 (#498)
    • Update scorecards.yml to use upload-artifact@v4.6.2 (#516)
    • Update AppAuth and GTMAppAuth dependencies (#517, #521)
    • Fix Swift integration tests for a returning user (#518)
    • Update .gitignore to include .build and Package.resolved (#520)
    • Update GIDSignInTest to correctly setUp and tearDown NSUserDefaults (#527)

8.0.0

  • General release adding Firebase App Check support to establish your application's integrity while signing in with Google
  • Update minimum iOS support to iOS 12 (#445)
  • Internal
    • Update AppCheckCore dependency to v11.0 (#454)
    • Add instancetype return to test helper (#393)
    • Remove GTMSessionFetcher modular import (#403)
    • Bump activesupport from 5.2.5 to 5.2.8.1 in the bundler group (#429)
    • Remove deprecated macos-11 runner (#447)
    • Update deprecated archiving API usage in tests (#449)

7.1.0-fac-beta-1.1.0

  • Beta release supporting Firebase App Check tokens used to establish your application's integrity while signing in with Google
  • Adds privacy manifest support released in v7.1.0
  • Internal

7.1.0

  • Update to Swift 5.0 in GoogleSignInSwiftSupport pod (#317)
  • Documentation updates (#351, #372)
  • Add Privacy Manifest (#382)
  • Internal
    • Fix typo in SFSafariViewController (#291)
    • Fix OCMock usage in unit test (#298)
    • Use new delegate protocol from GTMAppAuth 4.0.0 (#299)
    • Ensure that completion is not nil before calling -[GIDSignIn restorePreviousSignIn:] (#301)
    • Removes macos-11 runner in GitHub workflows (#302)
    • Updates button name reference so UI automation tests pass (#308)

7.1.0-fac-beta-1.0.0

  • Beta release supporting Firebase App Check tokens used to establish your application's integrity while signing in with Google
  • Internal
    • Update SignInSample Podfile minimum iOS version (#355)
    • Update AppCheckExample unit test target to pass during continuous integration (#356)

7.1.0-fac-eap-1.0.0

  • Early Access Program (EAP) release supporting Firebase App Check tokens used to establish your application's integrity while signing in with Google
  • Internal
    • Fix typo in SFSafariViewController (#291)
    • Removes macos-11 runner in GitHub workflows (#302)
    • Updates button name reference so UI automation tests pass (#308)
    • Ensure that completion is not nil before calling -[GIDSignIn restorePreviousSignIn:] (#301)
    • Use new delegate protocol from GTMAppAuth 4.0.0 (#299)

7.0.0

  • All configuration can now be provided via your Info.plist file. (#228)
    • Use the following keys in <key>KEY</key><string>VALUE</string> pairs to configure the SDK:
      • GIDClientID (required)
      • GIDServerClientID (optional)
      • GIDHostedDomain (optional)
      • GIDOpenIDRealm (optional)
  • Support for Swift Concurrency. (#187)
  • API surface improvements (#249, #228, #187)
    • GIDSignIn
      • New configuration property.
      • Removed Configuration: arguments from signIn: methods.
      • Removed addScopes: and added it to GIDGoogleUser.
      • Renamed callback: arguments to completion: for asynchronous methods taking blocks.
    • GIDGoogleUser
      • New configuration property.
      • New addScopes: method moved from GIDSignIn.
      • Removed authentication property and replaced it with:
        • New accessToken property.
        • New refreshToken property.
        • New idToken property.
        • New fetcherAuthorizer property.
        • New refreshTokensIfNeededWithCompletion: method.
    • New GIDToken class to represent access, refresh, and ID tokens in GIDGoogleUser.
    • New GIDSignInResult class to represent the result of a successful signIn or addScopes flow.
    • Removed GIDSignInCallback, GIDDisconnectCallback, and GIDAuthenticationAction block type definitions.

6.2.4

  • Updated the GTMSessionFetcher dependency to allow 2.x versions. (#207)

6.2.3

  • Fix resource loading in GoogleSignInSwift with CocoaPods use_frameworks! (#197)
  • Prevent build errors for GoogleSignInSwift in certain scenarios when using Swift Package Manager. (#166)

6.2.2

  • Prevent build errors for GoogleSignInSwift when using Swift Package Manager. (#157)
  • Prevent a build error on Xcode 12 and earlier. (#158)

6.2.1

  • Use GoogleSignInSwiftSupport as the name of the Swift support CocoaPod. (#137)

6.2.0

  • Support for macOS. (#104)
  • Added a SwiftUI "Sign in with Google" button. (#103)
  • Added the ability to request additional scopes at sign-in time. (#30)
  • Fixed several issues. (#87, #106)

6.1.0

  • New Swift sample app demonstrating SwiftUI. (#63)
  • Support for Mac Catalyst.
  • Improvements to the addScopes implementation. (#68, #70)

6.0.2

  • Ensure that module imports can be used when built as a library. (#53)

6.0.1

  • Fixes nested callbacks not being called for signIn and addScopes methods. (#29)

6.0.0

  • Google Sign-In for iOS is now open source.
  • Swift Package Manager support.
  • Support for Simulator on M1 Macs.
  • API surface updates
    • GIDSignIn
      • sharedInstance is now a class property.
      • signIn is now signInWithConfiguration:presentingViewController:callback: and always requests basic profile scopes.
      • addScopes:presentingViewController:callback: is the new way to add scopes beyond basic profile to a currently signed-in user.
      • restorePreviousSignIn is now restorePreviousSignInWithCallback:.
      • disconnect is now disconnectWithCallback:.
      • The GIDSignInDelegate protocol has been removed in favor of GIDSignInCallback and GIDDisconnectCallback blocks.
      • All sign-in flow configuration properties have been moved to GIDConfiguration.
    • The GIDConfiguration class had been added to represent the configuration needed to sign in a user.
    • GIDAuthentication
      • getTokensWithHandler: is now doWithFreshTokens:.
      • The GIDAuthenticationHandler typedef has been renamed GIDAuthenticationAction.
      • refreshTokensWithHandler: has been removed, use doWithFreshTokens: instead.
    • GIDSignInButton no longer makes calls to GIDSignIn internally and will need to be wired to an IBAction or similar in order for you to call signInWithConfiguration:presentingViewController:callback: to initiate a sign-in flow.

5.0.2

  • Fixes the wrong error code being sent to signIn:didSignInForUser:withError: when the user cancels iOS's consent dialog during the sign-in flow.

5.0.1

  • Fixes an issue that the sign in flow cannot be correctly started on iOS 13.
  • The zip distribution requires Xcode 11 or above.

5.0.0

  • Changes to GIDSignIn
    • uiDelegate has been replaced with presentingViewController.
    • hasAuthInKeychain has been replaced with hasPreviousSignIn.
    • signInSilently has been replaced with restorePreviousSignIn.
    • Removed deprecated kGIDSignInErrorCodeNoSignInHandlersInstalled error code.
  • Changes to GIDAuthentication
    • Removed deprecated methods getAccessTokenWithHandler: and refreshAccessTokenWithHandler:.
  • Changes to GIDGoogleUser
    • Removed deprecated property accessibleScopes, use grantedScopes instead.
  • Adds dependencies on AppAuth and GTMAppAuth.
  • Removes the dependency on GoogleToolboxForMac.
  • Drops support for iOS 7.

4.4.0

  • Removes the dependency on GTM OAuth 2.

4.3.0

  • Supports Google's Enterprise Mobile Management.

4.2.0

  • Adds grantedScopes to GIDGoogleUser, allowing confirmation of which scopes have been granted after a successful sign-in.
  • Deprecates accessibleScopes in GIDGoogleUser, use grantedScopes instead.
  • Localizes GIDSignInButton for hi (Hindi) and fr-CA (French (Canada)).
  • Adds dependency to the system LocalAuthentication framework.

4.1.2

  • Add pod try support for the GoogleSignIn CocoaPod.

4.1.1

  • Fixes an issue that GIDSignInUIDelegate's signInWillDispatch:error: was not called on iOS 11. Please note that it is intended that neither signIn:presentViewController: nor signIn:dismissViewController: is called on iOS 11 because SFAuthenticationSession is not presented by the app's view controller.

4.1.0

  • Uses SFAuthenticationSession on iOS 11.

4.0.2

  • No longer depends on GoogleAppUtilities.

4.0.1

  • Switches to open source pod dependencies.
  • Appearance of sign-in button no longer depends on requested scopes.

4.0.0

  • GoogleSignIn pod now takes form of a static framework. Import with #import <GoogleSignIn/GoogleSignIn.h> in Objective-C.
  • Adds module support. You can also use @import GoogleSignIn; in Objective-C, if module is enabled, and import GoogleSignIn in Swift without using a bridge-header.
  • For users of the stand-alone zip distribution, multiple frameworks are now provided and all need to be added to a project. This decomposition allows more flexibility in case of duplicated dependencies.
  • Removes deprecated method checkGoogleSignInAppInstalled from GIDSignIn.
  • Removes allowsSignInWithBrowser and allowsSignInWithWebView properties from GIDSignIn.
  • No longer requires adding bundle ID as a URL scheme supported by the app.

3.0.0

  • Provides givenName and familyName properties on GIDProfileData.
  • Allows setting the loginHint property on GIDSignIn to prefill the user's ID or email address in the sign-in flow.
  • Removed the UIViewController(SignIn) category as well as the delegate property from GIDSignInButton.
  • Requires that uiDelegate has been set properly on GIDSignIn and that SafariServices framework has been linked.
  • Removes the dependency on StoreKit.
  • Provides bitcode support.
  • Requires Xcode 7.0 or above due to bitcode incompatibilities with Xcode 6.

2.4.0

  • Updates sign-in button with the new Google logo.
  • Supports domain restriction for sign-in.
  • Allows refreshing ID tokens.

2.3.2

  • No longer requires Xcode 7.

2.3.1

  • Fixes a crash in GIDProfileData's imageURLWithDimension:.

2.3.0

  • Requires Xcode 7.0 or above.
  • Uses SFSafariViewController for signing in on iOS 9. uiDelegate must be set for this to work.
  • Optimizes fetching user profile.
  • Supports GTMFetcherAuthorizationProtocol in GIDAuthentication.

2.2.0

  • Compatible with iOS 9 (beta). Note that this version of the Sign-In SDK does not include bitcode, so you must set ENABLE_BITCODE to NO in your project if you use Xcode 7.
  • Adds descriptive identifiers for GIDSignInButton's Auto Layout constraints.
  • signInSilently no longer requires setting uiDelegate.

2.1.0

  • Fixes Auto Layout issues with GIDSignInButton.
  • Adds API to refresh access token in GIDAuthentication.
  • Better exception description for unassigned clientID in GIDSignIn.
  • Other minor bug fixes.

2.0.1

  • Bug fixes

2.0.0

  • Supports sign-in via UIWebView rather than app switching to a browser, configurable with the new allowsSignInWithWebView property.
  • Now apps which have disabled the app switch to a browser via the allowsSignInWithBrowser and in-app web view via allowsSignInWithWebView properties have the option to display a prompt instructing the user to download the Google app from the App Store.
  • Fixes sign-in button sizing issue when auto-layout is enabled
  • signInSilently now calls the delegate with error when hasAuthInKeychain is NO as documented
  • Other minor bug fixes

1.0.0

  • New sign-in focused SDK with refreshed API
  • Dynamically rendered sign-in button with contextual branding
  • Basic profile support
  • Added allowsSignInWithBrowser property