Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

App getting crash when click on GoogleSignIn button

I am using Google Sign-In SDK 4.0.1. When I press googleSignInButton then app will be crash. And gave below error, how to fix this:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Your app is missing support for the following URL schemes: com.googleusercontent.apps.107731993306-6s44u18onibp6gi0ddj94si1aifshhg6' *** First throw call stack: (     0   CoreFoundation                      0x0000000101ac0d4b __exceptionPreprocess + 171     1   libobjc.A.dylib                     0x000000010110121e objc_exception_throw + 48     2   CoreFoundation                      0x0000000101b2a2b5 +[NSException raise:format:] + 197     3   xxxxx                           0x000000010084b3cb -[GIDSignIn signInWithOptions:] + 246     4   xxxxx                           0x000000010084efc2 -[GIDSignInButton pressed] + 242     5   UIKit                               0x00000001028f78bc -[UIApplication sendAction:to:from:forEvent:] + 83     6   UIKit                               0x0000000102a7dc38 -[UIControl sendAction:to:forEvent:] + 67     7   UIKit                               0x0000000102a7df51 -[UIControl _sendActionsForEvents:withEvent:] + 444     8   UIKit                               0x0000000102a7ce4d -[UIControl touchesEnded:withEvent:] + 668     9   UIKit                               0x0000000102965545 -[UIWindow _sendTouchesForEvent:] + 2747     10  UIKit                               0x0000000102966c33 -[UIWindow sendEvent:] + 4011     11  UIKit                               0x00000001029139ab -[UIApplication sendEvent:] + 371     12  UIKit                               0x000000010310072d __dispatchPreprocessedEventFromEventQueue + 3248     13  UIKit                               0x00000001030f9463 __handleEventQueue + 4879     14  CoreFoundation                      0x0000000101a65761 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17     15  CoreFoundation                      0x0000000101a4a98c __CFRunLoopDoSources0 + 556     16  CoreFoundation                      0x0000000101a49e76 __CFRunLoopRun + 918     17  CoreFoundation                      0x0000000101a49884 CFRunLoopRunSpecific + 420     18  GraphicsServices                    0x00000001074cfa6f GSEventRunModal + 161     19  UIKit                               0x00000001028f5c68 UIApplicationMain + 159     20  xxxxxxxx                           0x00000001007c449f main + 111     21  libdyld.dylib                       0x0000000104d5368d start + 1     22  ???                                 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException` 

My AppDelegate.Swift is

class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate { public func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {    if (error == nil) {      let userId:NSString = user.userID as NSString;                  // For client-side use only!     let idToken: NSString = user.authentication.idToken as NSString; // Safe to send to the server     let fullName:NSString = user.profile.name as NSString;     let givenName:NSString = user.profile.givenName as NSString;     let familyName:NSString = user.profile.familyName as NSString;     let email:NSString = user.profile.email as NSString;     print(userId)     print(userId,idToken,fullName,givenName,familyName,email)     }     else {     print("\(error.localizedDescription)")     } }  var window: UIWindow?  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {      let kclientID:NSString = "107731993306-xxxxxxxxxxxxxxxxx.apps.googleusercontent.com"     GIDSignIn.sharedInstance().clientID = kclientID as String!      GIDSignIn.sharedInstance().delegate = self     return true }   func application(application: UIApplication,                  openURL url: NSURL, options: [String: AnyObject], annotation:Any, sourceApplication:String?) -> Bool {      return GIDSignIn.sharedInstance().handle(url as URL!, sourceApplication:sourceApplication, annotation: annotation) }  

Please give me the solution. Why it is crashed?

like image 491
Vikas Avatar asked Feb 13 '17 06:02

Vikas


1 Answers

As the error clearly says, your app is missing support for the url schemes.

Add the following schemes to your info.plist

<key>CFBundleURLTypes</key> <array>     <dict>         <key>CFBundleTypeRole</key>         <string>Editor</string>         <key>CFBundleURLSchemes</key>         <array>             <string>***Your bundle ID***</string>         </array>     </dict>     <dict>         <key>CFBundleTypeRole</key>         <string>Editor</string>         <key>CFBundleURLSchemes</key>         <array>             <string>com.googleusercontent.apps.107731993306-6s44u18onibp6gi0ddj94si1aifshhg6</string>         </array>     </dict>     <dict>         <key>CFBundleTypeRole</key>         <string>Editor</string>         <key>CFBundleURLSchemes</key>         <array>             <string>***Something here***</string>         </array>     </dict> </array> 

Check this url for your id => https://developers.google.com/identity/sign-in/ios/start-integrating

Your info.plist should look like ->

enter image description here

like image 162
Kakshil Shah Avatar answered Oct 16 '22 13:10

Kakshil Shah