2016-09-27 12 views
5
ile oturum açmaya çalışırken hata oluştu

Google oturum Xcode 7 ile çalışıyordu. Xcode 8'e güncelledikten sonra, hata almaya başladı: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'You must specify |clientID| for |GIDSignIn|'. CLIENT_ID ile bir GoogleService-Info.plist dosyası var. Belirtmelisiniz | clientID | | GIDSignIn | Google

Ben aşağıdaki satırı ekleyerek bunu düzeltmek başardı:

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

CLIENT_ID GoogleService-Info.plist getirilen olmak değildir görünüyor. Kopyalama Bundle Kaynaklarında olduğundan emin oldum.

enter image description here

kod istemci kimliği belirtmek zorunda olmamalıdır. GoogleService-Info.plist dosyasındaki bilgileri almak için bunu nasıl düzeltebilirim?

cevap

1

Aynı problem vardı. Aslında benim durumumda GoogleServices-Info.plist güncellendi. GoogleServices-Info.plist'u yeniden indirdim ve sorunu benim için daha eski olanı ile güncelledim.

0

Ben AppDelegate sınıfına unutulmuş kod ekleyerek vererek çöz:

#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

Sen bu şekilde yapabiliriz. AppDelegate içinde

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

Bu şeyi FirebaseApp.configure() öğesinden sonra AppDelegate dosyasına yazın. – hussain

0

hızlı 3 ekleyin:

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

Eğer sırayla bu kod yer olduğundan emin olun.

FirebaseApp.configure() 

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

FirebaseApp.app()?.options.clientIDFirebaseApp.configure() çağrıldıktan sonra GoogleService-Info.plist veri almak mümkün olacaktır.

İlgili konular