- 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)
- Use the following keys in
- Support for Swift Concurrency. (#187)
- API surface improvements (#249, #228, #187)
GIDSignIn
- New
configuration
property. - Removed
Configuration:
arguments fromsignIn:
methods. - Removed
addScopes:
and added it toGIDGoogleUser
. - Renamed
callback:
arguments tocompletion:
for asynchronous methods taking blocks.
- New
GIDGoogleUser
- New
configuration
property. - New
addScopes:
method moved fromGIDSignIn
. - Removed
authentication
property and replaced it with:- New
accessToken
property. - New
refreshToken
property. - New
idToken
property. - New
fetcherAuthorizer
property. - New
refreshTokensIfNeededWithCompletion:
method.
- New
- New
- New
GIDToken
class to represent access, refresh, and ID tokens inGIDGoogleUser
. - New
GIDSignInResult
class to represent the result of a successful signIn or addScopes flow. - Removed
GIDSignInCallback
,GIDDisconnectCallback
, andGIDAuthenticationAction
block type definitions.
- Updated the GTMSessionFetcher dependency to allow 2.x versions. (#207)
- Fix resource loading in GoogleSignInSwift with CocoaPods use_frameworks! (#197)
- Prevent build errors for GoogleSignInSwift in certain scenarios when using Swift Package Manager. (#166)
- Prevent build errors for GoogleSignInSwift when using Swift Package Manager. (#157)
- Prevent a build error on Xcode 12 and earlier. (#158)
- Use
GoogleSignInSwiftSupport
as the name of the Swift support CocoaPod. (#137)
- 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)
- New Swift sample app demonstrating SwiftUI. (#63)
- Support for Mac Catalyst.
- Improvements to the
addScopes
implementation. (#68, #70)
- Ensure that module imports can be used when built as a library. (#53)
- Fixes nested callbacks not being called for signIn and addScopes methods. (#29)
- 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 nowsignInWithConfiguration: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 nowrestorePreviousSignInWithCallback:
.disconnect
is nowdisconnectWithCallback:
.- The
GIDSignInDelegate
protocol has been removed in favor ofGIDSignInCallback
andGIDDisconnectCallback
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 nowdoWithFreshTokens:
.- The
GIDAuthenticationHandler
typedef has been renamedGIDAuthenticationAction
. refreshTokensWithHandler:
has been removed, usedoWithFreshTokens:
instead.
GIDSignInButton
no longer makes calls toGIDSignIn
internally and will need to be wired to anIBAction
or similar in order for you to callsignInWithConfiguration:presentingViewController:callback:
to initiate a sign-in flow.
- Fixes the wrong error code being sent to
signIn:didSignInForUser:withError:
when the user cancels iOS's consent dialog during the sign-in flow.
- Fixes an issue that the sign in flow cannot be correctly started on iOS 13.
- The zip distribution requires Xcode 11 or above.
- Changes to GIDSignIn
uiDelegate
has been replaced withpresentingViewController
.hasAuthInKeychain
has been replaced withhasPreviousSignIn
.signInSilently
has been replaced withrestorePreviousSignIn
.- Removed deprecated
kGIDSignInErrorCodeNoSignInHandlersInstalled
error code.
- Changes to GIDAuthentication
- Removed deprecated methods
getAccessTokenWithHandler:
andrefreshAccessTokenWithHandler:
.
- Removed deprecated methods
- Changes to GIDGoogleUser
- Removed deprecated property
accessibleScopes
, usegrantedScopes
instead.
- Removed deprecated property
- Adds dependencies on AppAuth and GTMAppAuth.
- Removes the dependency on GoogleToolboxForMac.
- Drops support for iOS 7.
- Removes the dependency on GTM OAuth 2.
- Supports Google's Enterprise Mobile Management.
- Adds
grantedScopes
toGIDGoogleUser
, allowing confirmation of which scopes have been granted after a successful sign-in. - Deprecates
accessibleScopes
inGIDGoogleUser
, usegrantedScopes
instead. - Localizes
GIDSignInButton
for hi (Hindi) and fr-CA (French (Canada)). - Adds dependency to the system
LocalAuthentication
framework.
- Add
pod try
support for the GoogleSignIn CocoaPod.
- Fixes an issue that
GIDSignInUIDelegate
'ssignInWillDispatch:error:
was not called on iOS 11. Please note that it is intended that neithersignIn:presentViewController:
norsignIn:dismissViewController:
is called on iOS 11 because SFAuthenticationSession is not presented by the app's view controller.
- Uses SFAuthenticationSession on iOS 11.
- No longer depends on GoogleAppUtilities.
- Switches to open source pod dependencies.
- Appearance of sign-in button no longer depends on requested scopes.
- 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, andimport 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
fromGIDSignIn
. - Removes
allowsSignInWithBrowser
andallowsSignInWithWebView
properties fromGIDSignIn
. - No longer requires adding bundle ID as a URL scheme supported by the app.
- Provides
givenName
andfamilyName
properties onGIDProfileData
. - Allows setting the
loginHint
property onGIDSignIn
to prefill the user's ID or email address in the sign-in flow. - Removed the
UIViewController(SignIn)
category as well as thedelegate
property fromGIDSignInButton
. - Requires that
uiDelegate
has been set properly onGIDSignIn
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.
- Updates sign-in button with the new Google logo.
- Supports domain restriction for sign-in.
- Allows refreshing ID tokens.
- No longer requires Xcode 7.
- Fixes a crash in
GIDProfileData
'simageURLWithDimension:
.
- 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.
- 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 settinguiDelegate
.
- 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.
- Bug fixes
- 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 viaallowsSignInWithWebView
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 whenhasAuthInKeychain
isNO
as documented- Other minor bug fixes
- New sign-in focused SDK with refreshed API
- Dynamically rendered sign-in button with contextual branding
- Basic profile support
- Added allowsSignInWithBrowser property