2014-05-19 124 views
0

應用程序在G +登錄時崩潰。Google+登錄崩潰

Crashlytics報告它的方法出現:

[GPPSignIn addSavedKeychainName:] 

的例外是:

Fatal Exception: NSInvalidArgumentException 
[___NSArrayM insertObject:AtIndex:]: object cannot be nil 

我的代碼是:

- (void)googleLogin 
{ 
    GPPSignIn *gppSignIn = [GPPSignIn sharedInstance]; 
    gppSignIn.clientID = GOOGLE_CLIENTID; 
    gppSignIn.scopes = [NSArray arrayWithObjects:kGTLAuthScopePlusLogin, nil]; 
    gppSignIn.delegate = self; 
    gppSignIn.shouldFetchGoogleUserEmail = YES; 
    gppSignIn.attemptSSO = YES; 

    [SVProgressHUD show]; 
    [gppSignIn authenticate]; 
} 

沒有其他人有這個問題,並知道如何解決它?

回答

1

這可能是由您的通話將造成

[gppSignIn authenticate]; 

相反,嘗試:

[gppSignIn trySilentAuthentication]; 

如果你希望用戶自動簽名

您可能還需要。嘗試將您的示波器作爲字符串常量傳遞,以確保某些值不會與kGTLAuthScopePlusLogin值發生衝突:

另外值得注意的是
signIn.scopes = [NSArray arrayWithObjects: 
       @"login", 
       nil]; 

,它可能是從簽約用戶達到這種狀態時,能夠解決的問題:

[[GPPSignIn sharedInstance] signOut]; 
+1

我是越來越散發性上trySilentAuthentication的NSInvalidArgumentException和signout解決了這個問題對我來說。我在嘗試signIn之前檢查過expirationDate。 Upvoted –

+1

NSInvocation fetcherWithRequest:關於我幫助解決的錯誤的更多詳細信息,供將來參考 –