{"id":245,"date":"2017-02-13T06:14:12","date_gmt":"2017-02-13T06:14:12","guid":{"rendered":"http:\/\/inwizards.com\/blog\/?p=245"},"modified":"2023-07-26T13:47:31","modified_gmt":"2023-07-26T13:47:31","slug":"how-to-login-google-signin-without-using-pod-swift-2-0","status":"publish","type":"post","link":"https:\/\/www.inwizards.com\/blog\/how-to-login-google-signin-without-using-pod-swift-2-0\/","title":{"rendered":"How to login with Google SignIn without using pod, in Swift 2.0"},"content":{"rendered":"<p><span style=\"color: #000000;\">Hi,<\/span><br \/>\n<span style=\"color: #000000;\"> In this blog I will tell you how to login with Google SignIn in Swift which is very important for quick signup as users don\u2019t have time to fill the forms.<\/span><\/p>\n<p><span style=\"color: #000000;\">Create a new project<\/span><br \/>\n<span style=\"color: #000000;\"> Open Xcode , create a new \u201cSingle Page Application\u201d and select Swift as the programming language.<\/span><br \/>\n<span style=\"color: #000000;\"> Download GoogleSignIn SDK by clicking on this link<\/span><br \/>\n<span style=\"color: #000000;\"> https:\/\/developers.google.com\/identity\/sign-in\/ios\/sdk\/<\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Add the SDK in your Xcode project<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Extract the SDK archive you downloaded and copy the following files to your Xcode project:<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #364851;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">GoogleSignIn.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #364851;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">GoogleSignIn.bundle<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\">Add <\/span><span style=\"color: #364851;\">GoogleSignIn.bundle<\/span><span style=\"color: #191919;\"> to your Xcode project\u2019s <\/span><span style=\"color: #191919;\"><strong>Copy Bundle Resources<\/strong><\/span><span style=\"color: #191919;\"> build phase.\u2028<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Link dependent frameworks to your Xcode project<\/span><\/span><\/span><\/p>\n<p class=\"western\"><a href=\"https:\/\/developer.apple.com\/library\/ios\/recipes\/xcode_help-project_editor\/Articles\/AddingaLibrarytoaTarget.html\"><span style=\"color: #1397f1;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Link the following frameworks<\/strong><\/span><\/span><\/span><\/a> <span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>to your Xcode project:<\/strong><\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #364851;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">AddressBook.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #364851;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">StoreKit.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #364851;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">SystemConfiguration.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">AssetsLibrary.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">CoreLocation.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">CoreMotion.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">MessageUI.framework<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">libcurses.tbd<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">libz.tbd<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Add the <\/strong><\/span><\/span><\/span><a href=\"http:\/\/developer.apple.com\/mac\/library\/qa\/qa2006\/qa1490.html\"><span style=\"color: #1397f1;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>ObjC linker flag<\/strong><\/span><\/span><\/span><\/a> <span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>to the app target\u2019s build settings:<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\"><strong>Other Linker Flags:<\/strong><\/span> <span style=\"color: #364851;\">$(OTHER_LDFLAGS) -ObjC<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Get a configuration file<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Click the button below to get a configuration file to add to your project.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">The configuration file provides service-specific information for your app. To get it, you must select an existing project for your app or create a new one. You\u2019ll also need to provide a bundle ID for your app.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Set your project\u2019s reversed client ID and bundle ID<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\">In the <\/span><span style=\"color: #191919;\"><strong>Project &gt; Target &gt; Info &gt; URL Types<\/strong><\/span><span style=\"color: #191919;\"> panel, create a new item and paste your<\/span><span style=\"color: #364851;\">REVERSED_CLIENT_ID<\/span><span style=\"color: #191919;\"> into the<\/span><span style=\"color: #191919;\"><strong>URL Schemes<\/strong><\/span><span style=\"color: #191919;\"> field. You can find your<\/span><span style=\"color: #364851;\">REVERSED_CLIENT_ID<\/span><span style=\"color: #191919;\">in the <\/span><span style=\"color: #364851;\">GoogleService-Info.plist<\/span><span style=\"color: #191919;\"> file.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\">Also in the <\/span><span style=\"color: #191919;\"><strong>Project &gt; Target &gt; Info &gt; URL Types<\/strong><\/span><span style=\"color: #191919;\"> panel, create a new item and type your bundle identifier in the <\/span><span style=\"color: #191919;\"><strong>URL Schemes<\/strong><\/span><span style=\"color: #191919;\"> field.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Add Bridging Header<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">As GoogleSignIn.framework is available in Objective C, we need to add bridging header to our Swift project. By using bridging header, we can use Objective C code in our Swift application.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">To add bridging header to the project<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Create new file by <em>File &gt;&gt; New &gt;&gt; File<\/em> from the menu to add temporary file.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Select Objective-C File.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Click Next.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Add File Name.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Click on Next.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Click on Create.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">It will ask to configure Objective-C bridging header.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Click on Create Bridging Header button.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">It will create Objective-C bridging header file.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Add following line of code to Bridging Header file<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #cc004e;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">#import &lt;GoogleSignIn\/GoogleSignIn.h&gt;<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Also, you will need to set the client ID directly using the value found in the GoogleService-Info.plist file:<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #000000;\">Now Goto <\/span><span style=\"color: #d90b00;\">AppDelegate.swift<\/span><span style=\"color: #000000;\"> File add ClientID<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">import<\/span> UIKit<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #0000ff;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">@UIApplicationMain<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">class<\/span> AppDelegate: <span style=\"color: #2b839f;\">UIResponder<\/span>, <span style=\"color: #2b839f;\">UIApplicationDelegate<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">var<\/span> window: <span style=\"color: #2b839f;\">UIWindow<\/span>?<\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">var<\/span> kClientID:<span style=\"color: #2b839f;\">String<\/span> = <span style=\"color: #a31515;\">\u201cYOUR-CLIENT-ID\u201d<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\">In your app delegate\u2019s <\/span><span style=\"color: #364851;\">application:didFinishLaunchingWithOptions:<\/span><span style=\"color: #191919;\"> method, configure the<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> application(application: <span style=\"color: #2b839f;\">UIApplication<\/span>, didFinishLaunchingWithOptions launchOptions: [<span style=\"color: #2b839f;\">NSObject<\/span>:<span style=\"color: #2b839f;\">AnyObject<\/span>]?) -&gt; <span style=\"color: #2b839f;\">Bool<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">clientID<\/span> = <span style=\"color: #2b839f;\">kClientID<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #0000ff;\">true<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\">Implement the <\/span><span style=\"color: #364851;\">application:openURL:options:<\/span><span style=\"color: #191919;\"> method of your app delegate. The method should call the<\/span><span style=\"color: #364851;\">handleURL<\/span><span style=\"color: #191919;\"> method of the <\/span><span style=\"color: #364851;\">GIDSignIn<\/span><span style=\"color: #191919;\"> instance, which will properly handle the URL that your application receives at the end of the authentication process.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@available<\/span>(<span style=\"color: #0000ff;\">iOS<\/span> 9.0, *)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> application(app: <span style=\"color: #2b839f;\">UIApplication<\/span>, openURL url: <span style=\"color: #2b839f;\">NSURL<\/span>, options: [<span style=\"color: #2b839f;\">String<\/span> : <span style=\"color: #2b839f;\">AnyObject<\/span>]) -&gt; <span style=\"color: #2b839f;\">Bool<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">handleURL<\/span>(url,<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">sourceApplication: options[<span style=\"color: #2b839f;\">UIApplicationOpenURLOptionsSourceApplicationKey<\/span>] <span style=\"color: #0000ff;\">as<\/span>! <span style=\"color: #2b839f;\">String<\/span>?,<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">annotation: options[<span style=\"color: #2b839f;\">UIApplicationOpenURLOptionsAnnotationKey<\/span>])<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\">For your app to run on iOS 8 and older, also implement the deprecated<\/span><span style=\"color: #364851;\">application:openURL:sourceApplication:annotation:<\/span><span style=\"color: #191919;\"> method.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> application(application: <span style=\"color: #2b839f;\">UIApplication<\/span>,openURL url: <span style=\"color: #2b839f;\">NSURL<\/span>, sourceApplication: <span style=\"color: #2b839f;\">String<\/span>?, annotation:<span style=\"color: #2b839f;\">AnyObject<\/span>) -&gt; <span style=\"color: #2b839f;\">Bool<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">handleURL<\/span>(url,sourceApplication: sourceApplication,annotation: annotation)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong><span style=\"color: #535353;\">Now Goto <\/span><span style=\"color: #d90b00;\">ViewController.swift<\/span><span style=\"color: #535353;\"> file<\/span><\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">implement the GIDSignInDelegate,GIDSignInUIDelegate protocol to handle the sign-in process by defining the following methods:<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> signIn(signIn: <span style=\"color: #2b839f;\">GIDSignIn<\/span>!, didSignInForUser user: <span style=\"color: #2b839f;\">GIDGoogleUser<\/span>!, withError error: <span style=\"color: #2b839f;\">NSError<\/span>!) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> signIn(signIn: <span style=\"color: #2b839f;\">GIDSignIn<\/span>!, didDisconnectWithUser user: <span style=\"color: #2b839f;\">GIDGoogleUser<\/span>!, withError error: <span style=\"color: #2b839f;\">NSError<\/span>!) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Add the sign-in button<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #191919;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Next, you will add the Google Sign-In button so that the user can initiate the sign-in process. Make the following changes to the view controller that manages your app\u2019s sign-in screen:<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">class<\/span> ViewController: <span style=\"color: #2b839f;\">UIViewController<\/span>,<span style=\"color: #2b839f;\">GIDSignInUIDelegate<\/span>,<span style=\"color: #2b839f;\">GIDSignInDelegate<\/span> {<\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> signInButton: <span style=\"color: #2b839f;\">GIDSignInButton<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #191919;\">In the view controller, override the <\/span><span style=\"color: #364851;\">viewDidLoad<\/span><span style=\"color: #191919;\"> method to set the UI delegate of the<\/span><span style=\"color: #364851;\">GIDSignIn<\/span><span style=\"color: #191919;\">object, and (optionally) to sign in silently when possible.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">uiDelegate<\/span> = <span style=\"color: #0000ff;\">self<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">delegate<\/span> = <span style=\"color: #0000ff;\">self<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><strong>Here is the complete Code in ViewController.swift file<\/strong><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">import<\/span> UIKit<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@objc<\/span>(ViewController)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">class<\/span> ViewController: <span style=\"color: #2b839f;\">UIViewController<\/span>,<span style=\"color: #2b839f;\">GIDSignInUIDelegate<\/span>,<span style=\"color: #2b839f;\">GIDSignInDelegate<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> signInButton: <span style=\"color: #2b839f;\">GIDSignInButton<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> signOutButton: <span style=\"color: #2b839f;\">UIButton<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> disconnectButton: <span style=\"color: #2b839f;\">UIButton<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> statusText: <span style=\"color: #2b839f;\">UILabel<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> NameText: <span style=\"color: #2b839f;\">UILabel<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> EmailText: <span style=\"color: #2b839f;\">UILabel<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">override<\/span> <span style=\"color: #0000ff;\">func<\/span> viewDidLoad() {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">super<\/span>.<span style=\"color: #2b839f;\">viewDidLoad<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">uiDelegate<\/span> = <span style=\"color: #0000ff;\">self<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">delegate<\/span> = <span style=\"color: #0000ff;\">self<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">NSNotificationCenter<\/span>.<span style=\"color: #2b839f;\">defaultCenter<\/span>().<span style=\"color: #2b839f;\">addObserver<\/span>(<span style=\"color: #0000ff;\">self<\/span>,selector:<span style=\"color: #a31515;\">\u201creceiveToggleAuthUINotification:\u201d<\/span>,name:<span style=\"color: #a31515;\">\u201cToggleAuthUINotification\u201d<\/span>,object: <span style=\"color: #0000ff;\">nil<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">statusText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = <span style=\"color: #a31515;\">\u201cInitialized Swift app\u2026\u201d<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">toggleAuthUI<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">override<\/span> <span style=\"color: #0000ff;\">func<\/span> didReceiveMemoryWarning() {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">super<\/span>.<span style=\"color: #2b839f;\">didReceiveMemoryWarning<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBAction<\/span> <span style=\"color: #0000ff;\">func<\/span> didTapSignOut(sender: <span style=\"color: #2b839f;\">AnyObject<\/span>) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">signOut<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">statusText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = <span style=\"color: #a31515;\">\u201cSigned out.\u201d<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">toggleAuthUI<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBAction<\/span> <span style=\"color: #0000ff;\">func<\/span> didTapDisconnect(sender: <span style=\"color: #2b839f;\">AnyObject<\/span>) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">disconnect<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">statusText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = <span style=\"color: #a31515;\">\u201cDisconnecting.\u201d<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> signIn(signIn: <span style=\"color: #2b839f;\">GIDSignIn<\/span>!, didSignInForUser user: <span style=\"color: #2b839f;\">GIDGoogleUser<\/span>!, withError error: <span style=\"color: #2b839f;\">NSError<\/span>!) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span> (error == <span style=\"color: #0000ff;\">nil<\/span>) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> userId = user.<span style=\"color: #2b839f;\">userID<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> idToken = user.<span style=\"color: #2b839f;\">authentication<\/span>.<span style=\"color: #2b839f;\">idToken<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> name = user.<span style=\"color: #2b839f;\">profile<\/span>.<span style=\"color: #2b839f;\">name<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> email = user.<span style=\"color: #2b839f;\">profile<\/span>.<span style=\"color: #2b839f;\">email<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">NameText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = name<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">EmailText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = email<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">print<\/span>(idToken)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">NSNotificationCenter<\/span>.<span style=\"color: #2b839f;\">defaultCenter<\/span>().<span style=\"color: #2b839f;\">postNotificationName<\/span>(<span style=\"color: #a31515;\">\u201cToggleAuthUINotification\u201d<\/span>,object: <span style=\"color: #0000ff;\">nil<\/span>,userInfo: [<span style=\"color: #a31515;\">\u201cstatusText\u201d<\/span>: <span style=\"color: #a31515;\">\u201cSigned in Successfully<\/span><span style=\"color: #a31515;\">(<\/span>userId<span style=\"color: #a31515;\">)\u201d<\/span>])<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">} <span style=\"color: #0000ff;\">else<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">print<\/span>(<span style=\"color: #a31515;\">\u201c<\/span><span style=\"color: #a31515;\">(<\/span>error.<span style=\"color: #2b839f;\">localizedDescription<\/span><span style=\"color: #a31515;\">)\u201d<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">NSNotificationCenter<\/span>.<span style=\"color: #2b839f;\">defaultCenter<\/span>().<span style=\"color: #2b839f;\">postNotificationName<\/span>(<span style=\"color: #a31515;\">\u201cToggleAuthUINotification\u201d<\/span>, object: <span style=\"color: #0000ff;\">nil<\/span>, userInfo:<span style=\"color: #0000ff;\">nil<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> signIn(signIn: <span style=\"color: #2b839f;\">GIDSignIn<\/span>!, didDisconnectWithUser user: <span style=\"color: #2b839f;\">GIDGoogleUser<\/span>!, withError error: <span style=\"color: #2b839f;\">NSError<\/span>!) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">NSNotificationCenter<\/span>.<span style=\"color: #2b839f;\">defaultCenter<\/span>().<span style=\"color: #2b839f;\">postNotificationName<\/span>(<span style=\"color: #a31515;\">\u201cToggleAuthUINotification\u201d<\/span>,object: <span style=\"color: #0000ff;\">nil<\/span>,userInfo: [<span style=\"color: #a31515;\">\u201cstatusText\u201d<\/span>: <span style=\"color: #a31515;\">\u201cUser has disconnected.\u201d<\/span>])<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ [START toggle_auth]<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> toggleAuthUI() {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span> (<span style=\"color: #2b839f;\">GIDSignIn<\/span>.<span style=\"color: #2b839f;\">sharedInstance<\/span>().<span style=\"color: #2b839f;\">hasAuthInKeychain<\/span>()){<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ Signed in<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">signInButton<\/span>.<span style=\"color: #2b839f;\">hidden<\/span> = <span style=\"color: #0000ff;\">true<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">signOutButton<\/span>.<span style=\"color: #2b839f;\">hidden<\/span> = <span style=\"color: #0000ff;\">false<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">disconnectButton<\/span>.<span style=\"color: #2b839f;\">hidden<\/span> = <span style=\"color: #0000ff;\">false<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">} <span style=\"color: #0000ff;\">else<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">signInButton<\/span>.<span style=\"color: #2b839f;\">hidden<\/span> = <span style=\"color: #0000ff;\">false<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">signOutButton<\/span>.<span style=\"color: #2b839f;\">hidden<\/span> = <span style=\"color: #0000ff;\">true<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">disconnectButton<\/span>.<span style=\"color: #2b839f;\">hidden<\/span> = <span style=\"color: #0000ff;\">true<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">statusText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = <span style=\"color: #a31515;\">\u201cGoogle Sign in iOS Demo\u201d<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">} }<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">override<\/span> <span style=\"color: #0000ff;\">func<\/span> preferredStatusBarStyle() -&gt; <span style=\"color: #2b839f;\">UIStatusBarStyle<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #2b839f;\">UIStatusBarStyle<\/span>.<span style=\"color: #2b839f;\">LightContent<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">deinit<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">NSNotificationCenter<\/span>.<span style=\"color: #2b839f;\">defaultCenter<\/span>().<span style=\"color: #2b839f;\">removeObserver<\/span>(<span style=\"color: #0000ff;\">self<\/span>,<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">name: <span style=\"color: #a31515;\">\u201cToggleAuthUINotification\u201d<\/span>,<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">object: <span style=\"color: #0000ff;\">nil<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@objc<\/span> <span style=\"color: #0000ff;\">func<\/span> receiveToggleAuthUINotification(notification: <span style=\"color: #2b839f;\">NSNotification<\/span>) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span> (notification.<span style=\"color: #2b839f;\">name<\/span> == <span style=\"color: #a31515;\">\u201cToggleAuthUINotification\u201d<\/span>) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">self<\/span>.<span style=\"color: #2b839f;\">toggleAuthUI<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span> notification.<span style=\"color: #2b839f;\">userInfo<\/span> != <span style=\"color: #0000ff;\">nil<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> userInfo:<span style=\"color: #2b839f;\">Dictionary<\/span>&lt;<span style=\"color: #2b839f;\">String<\/span>,<span style=\"color: #2b839f;\">String<\/span>!&gt; =<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">notification.<span style=\"color: #2b839f;\">userInfo<\/span> <span style=\"color: #0000ff;\">as<\/span>! <span style=\"color: #2b839f;\">Dictionary<\/span>&lt;<span style=\"color: #2b839f;\">String<\/span>,<span style=\"color: #2b839f;\">String<\/span>!&gt;<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">self<\/span>.<span style=\"color: #2b839f;\">statusText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = userInfo[<span style=\"color: #a31515;\">\u201cstatusText\u201d<\/span>]<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">} }<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">} }<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Lato, helvetica, arial, sans-serif;\"><span style=\"font-size: medium;\">You can <a href=\"https:\/\/github.com\/a7tech\/How-to-login-with-Google-SignIn-without-using-pod-in-Swift-2.0\">download Demo project<\/a>.<\/span><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi, In this blog I will tell you how to login with Google SignIn in Swift which is very important for quick signup as users don\u2019t have time to fill the forms. Create a new project Open Xcode , create<\/p>\n","protected":false},"author":1,"featured_media":246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"spay_email":""},"categories":[1],"tags":[],"jetpack_featured_media_url":"https:\/\/i2.wp.com\/www.inwizards.com\/blog\/wp-content\/uploads\/2017\/02\/blog-banner3-2.png?fit=980%2C350&ssl=1","_links":{"self":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts\/245"}],"collection":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":5,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"predecessor-version":[{"id":2394,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts\/245\/revisions\/2394"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/media\/246"}],"wp:attachment":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}