2016-09-27 14 views
5

के साथ साइन इन करने का प्रयास करते समय त्रुटि Google साइन इन एक्सकोड 7 के साथ ठीक काम कर रहा था। एक्सकोड 8 को अपडेट करने के बाद, मुझे त्रुटि मिलना शुरू हो गया: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'You must specify |clientID| for |GIDSignIn|'। मेरे पास मेरी CLIENT_ID के साथ एक GoogleService-Info.plist फ़ाइल है।आपको निर्दिष्ट करना होगा | क्लाइंट आईडी | के लिए | GIDSignIn | Google

मैं निम्न पंक्ति जोड़कर इसे ठीक करने में सक्षम था:

GIDSignIn.sharedInstance().clientID = "<CLIENT_ID>" 

यह CLIENT_ID GoogleService-Info.plist से नहीं लाया जा रहा है लगता है। मैंने यह सुनिश्चित कर लिया है कि यह कॉपी बंडल संसाधनों में है।

enter image description here

मैं कोड में ग्राहक आईडी निर्दिष्ट करने के लिए नहीं होना चाहिए। GoogleService-Info.plist फ़ाइल से जानकारी प्राप्त करने के लिए मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

1

मुझे एक ही समस्या थी। असल में GoogleServices-Info.plist को मेरे मामले में अपडेट किया गया था। मैंने GoogleServices-Info.plist को फिर से डाउनलोड किया और इसे पुराने व्यक्ति के साथ अपडेट किया जिसने मेरे लिए समस्या तय की।

0

मैं AppDelegate वर्ग के लिए भूल गए कोड को जोड़ने के साथ इसे हल:

#import "AppDelegate.h" 
#import <Google/SignIn.h>  

@interface AppDelegate()<GIDSignInDelegate> 

@end 

@implementation AppDelegate 

#pragma mark - UIApplicationDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    //Google sign-in setup 
    NSError* configureError; 
    [[GGLContext sharedInstance] configureWithError: &configureError]; 
    if (configureError) { 
     NSLog(@"Error configuring Google services: %@", configureError.localizedDescription); 
    } 

    [GIDSignIn sharedInstance].delegate = self; 

    return YES; 
} 


#pragma mark - GIDSignInDelegate 

- (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)user withError:(NSError *)error { 
    //add your code here 
} 

- (void)signIn:(GIDSignIn *)signIn didDisconnectWithUser:(GIDGoogleUser *)user withError:(NSError *)error { 
    //add your code here 
} 

@end 
6

आप इसे इस तरह से कर सकते हैं।

GIDSignIn.sharedInstance().clientID = FIRApp.defaultApp()?.options.clientID 
+0

FirebaseApp.configure() के बाद AppDelegate फ़ाइल में यह चीज़ लिखें। – hussain

0

तेज 3 AppDelegate में जोड़ें:

var configureError: NSError? 
GGLContext.sharedInstance().configureWithError(&configureError) 
assert(configureError == nil, "Error configuring Google services: \ 
(String(describing: configureError))") 
0

सुनिश्चित करें कि आप अनुक्रम में इन कोड जगह ले ली है।

FirebaseApp.configure() 

GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID 
GIDSignIn.sharedInstance().delegate = self 

FirebaseApp.app()?.options.clientID केवल FirebaseApp.configure() कहा जाता है के बाद GoogleService-Info.plist से डेटा प्राप्त करने में सक्षम होगा।

संबंधित मुद्दे