单击GoogleSignIn按钮时,应用程序崩溃 [英] App getting crash when click on GoogleSignIn button
问题描述
我正在使用Google登录SDK 4.0.1.当我按googleSignInButton时,应用程序将崩溃.并给出了以下错误,如何解决此问题:
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`
我的AppDelegate.Swift是
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?
推荐答案
正如错误明确指出的那样,您的应用缺少对url方案的支持.
As the error clearly says, your app is missing support for the url schemes.
将以下方案添加到您的info.plist
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>
检查此网址以获取您的ID => https://developers. google.com/identity/sign-in/ios/start-integrating
Check this url for your id => https://developers.google.com/identity/sign-in/ios/start-integrating
您的info.plist应该看起来像->
Your info.plist should look like ->
这篇关于单击GoogleSignIn按钮时,应用程序崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!