[英]iOS Facebook SDK crashes app after revoking app permissions
我有Facebook SDK的問題。 在我的應用程序中,我有可能通過Facebook圖形請求從用戶的Facebook帳戶中刪除該應用程序:
NSString *graphPath = [NSString stringWithFormat:@"/%@/permissions", [FBSDKAccessToken currentAccessToken].userID];
[[[FBSDKGraphRequest alloc] initWithGraphPath:graphPath parameters:nil HTTPMethod:@"DELETE"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@"Facebook removed");
} else {
NSLog(@"Facebook error: %@", error);
}
}];
一切正常,但如果我嘗試使用logInWithReadPermissions
上的logInWithReadPermissions再次登錄,Safari會出現,我點擊“Contiune”來授權應用程序,它崩潰並出現錯誤:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]'
當我再次啟動應用程序后嘗試登錄時,一切正常。
你有什么線索,這可能是什么原因?
更新:
FBSDKCoreKit文件之一(即FBSDKTimeSpentData.m)中的一個例外發生在149-155行,我們有:
NSDictionary *timeSpentData =
@{
FBSDKTimeSpentPersistKeySessionSecondsSpent : @(_secondsSpentInCurrentSession),
FBSDKTimeSpentPersistKeySessionNumInterruptions : @(_numInterruptionsInCurrentSession),
FBSDKTimeSpentPersistKeyLastSuspendTime : @(now),
FBSDKTimeSpentPersistKeySessionID : _sessionID,
};
_sessionID為nil此變量初始化為
- (void)instanceRestore:(BOOL)calledFromActivateApp
方法,可以通過調用在app中調用
[FBSDKAppEvents activateApp]
但是在instanceRestore:方法中有一個條件
if (!_isCurrentlyLoaded) {
//
}
這是不符合的,因此沒有設置_sessionID。
Facebook iOS庫中有一個錯誤。 請更新Facebook SDK庫。 在FBSDKLoginKit(4.13.1)中,此錯誤已得到修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.