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.
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.
Configure your application project
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.