Before you can begin integrating your iOS or macOS app with the Google Sign-In components,
you must download the dependencies and configure your Xcode project. The steps on
this page do just that. The
next steps
then describe how to integrate
Google Sign-In features into your app.
Before you begin
Install a current version of
Xcode
.
Install the Google Sign-In dependencies in your project
CocoaPods
If you don't already have CocoaPods installed, follow the steps in the
CocoaPods
Getting Started
guide.
Open a terminal window and navigate to the location of your app's Xcode
project.
If you have not already created a Podfile for your application, create one
now:
pod init
Open the Podfile created for your application and add the following:
pod 'GoogleSignIn'
If you are using SwiftUI, also add the pod extension for the "Sign in
with Google" button:
pod 'GoogleSignInSwiftSupport'
Save the file and run:
pod install
Open the generated
.xcworkspace
workspace
file for your application in
Xcode. Use this file for all future development on your application. (Note
that this is different from the included
.xcodeproj
project
file, which
would result in build errors when opened.)
You can refer to the
Objective-C sample app's
Podfile
for an example.
Swift Package Manager
Open your project in Xcode.
Add the Google Sign-In dependencies to your app
(
Xcode documentation
):
Repository
|
https://github.com/google/GoogleSignIn-iOS
|
Version
|
7.0.0
|
Package product
|
GoogleSignIn
|
If you are using SwiftUI, also add the following extension package product
for the "Sign in with Google" button:
Package product
|
GoogleSignInSwift
|
Get an OAuth client ID
Your app needs an OAuth client ID to identify itself to Google's authentication
backend. For iOS and macOS apps the
OAuth client ID application type
must be configured as iOS.
If you haven't already created an OAuth client ID, click the button
below to do so.
Create an OAuth client ID
After you create the OAuth client ID, take note of the client ID string, which
you will need to configure Google Sign-In in your app. You can optionally
download the configuration file, which contains your client ID and other
configuration data, for future reference.
If you already created an OAuth client ID, you can find your existing OAuth
information by clicking the button below.
Get an existing OAuth client ID
Get an OAuth server client ID
Most apps will need to pass the identity of signed-in users to a backend service
of some kind. To securely pass the identity of users who signed in with Google
to your backend, you use ID tokens, as discussed in
Authenticate with a backend server
.
Retrieving a user's ID token requires a second client ID—your
server
client ID—which represents your backend.
To create a server client ID:
Open your project in the
Cloud console
.
Create a new
Web application
type OAuth client ID. Take note of the
client ID string, which you will need to configure Google Sign-In in your
app.
Google Sign-In requires your project to be configured with your OAuth client ID
and a custom URL scheme. Optionally, you can also add your server client ID for
backend authentication
or optimize your app for your Google
Workspace domain.
Add your OAuth client ID and custom URL scheme
Update your app's
Info.plist
file to add your
OAuth
client ID
and a custom URL scheme based on the
reversed client ID
.
The reversed client ID is your client ID with the order of the dot-delimited
fields reversed. This is also shown under "
iOS URL scheme
" when
selecting an
existing iOS OAuth client in the Cloud
console
. For example:
com.googleusercontent.apps.1234567890-abcdefg
<key>GIDClientID</key>
<string>
YOUR_IOS_CLIENT_ID
</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>
YOUR_DOT_REVERSED_IOS_CLIENT_ID
</string>
</array>
</dict>
</array>
Optional: Configure backend authentication
If you need to get users' ID tokens for
backend authentication
,
also set the
GIDServerClientID
key in your app's
Info.plist
file.
<key>GIDServerClientID</key>
<string>
YOUR_SERVER_CLIENT_ID
</string>
Optional: Optimize for a Google Workspace domain or OpenID realm
Use the
GIDHostedDomain
parameter if you want to optimize the sign-in flow for
a Google Workspace domain.
<key>GIDHostedDomain</key>
<string>
YOUR_HOSTED_DOMAIN
</string>
Use the
GIDOpenIDRealm
parameter if you want to specify an OpenID realm.
<key>GIDOpenIDRealm</key>
<string>
YOUR_OPENID_REALM
</string>
Signing your application
Your application must be signed with a certificate issued by Apple to run
natively on macOS and iOS devices in order to store credentials via the
keychain.
Next steps
Now that you've downloaded the project dependencies and configured your Xcode
project, you can add
Google Sign-In
to your iOS app.