2016-04-13 12 views
4

Facebook SDKに問題があります。私のアプリでは、私はFacebookのグラフ要求を介してユーザのFacebookのアカウントからアプリを削除する可能性があります。アプリの権限を取り消した後、iOS Facebook SDKがクラッシュする

 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); 
     } 
    }]; 

すべてが正常に動作しますが、私はその後、FBSDKLoginManagerにlogInWithReadPermissionsを使用して再度ログインしようとした場合、Safariは表示され、私は「Contiuneをクリックしてください「アプリを承認し、それがエラーでクラッシュします

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]' 

私は再びアプリを起動した後にログインしようとすると、すべてが正常に動作します。

あなたは何か手掛かりがありますか、これの理由は何ですか?

UPDATE:

例外がライン149-155で、FBSDKCoreKitファイル、すなわちFBSDKTimeSpentData.mのいずれかで発生し

我々は持っている:

NSDictionary *timeSpentData = 
    @{ 
    FBSDKTimeSpentPersistKeySessionSecondsSpent : @(_secondsSpentInCurrentSession), 
    FBSDKTimeSpentPersistKeySessionNumInterruptions : @(_numInterruptionsInCurrentSession), 
    FBSDKTimeSpentPersistKeyLastSuspendTime : @(now), 
    FBSDKTimeSpentPersistKeySessionID : _sessionID, 
    }; 

_sessionIDは nilをこの変数は

に初期化されています
- (void)instanceRestore:(BOOL)calledFromActivateApp 

メソッド。これは、

を呼び出して呼び出すことができますinstanceRestoreで
[FBSDKAppEvents activateApp] 

しかし:メソッド従って_sessionIDが設定されていない、満たされていない状態

if (!_isCurrentlyLoaded) { 
// 
} 

があります。

+0

xcodeで例外ブレークポイントを有効にし、例外が発生したときにどこにヒットするかを確認します。 @(_ numInterruptionsInCurrentSession)を、 FBSDKTimeSpentPersistKeyLastSuspendTime: NSDictionaryの* timeSpentData = @ { FBSDKTimeSpentPersistKeySessionSecondsSpent:@(_ secondsSpentInCurrentSession)、 FBSDKTimeSpentPersistKeySessionNumInterruptionsを –

+0

例外は、我々が持っているライン149-155で、FBSDKCoreKitファイル、すなわちFBSDKTimeSpentData.mのいずれかで発生します。 @(現在)、 FBSDKTimeSpentPersistKeySessionID:_sessionID、 }; _sessionIDがnil – jonaszmclaren

+0

例外は、ディクショナリにnill値が挿入されていることを示します。私たちはあなたが関連するコードを投稿しない限り、私たちを助けることはできません.Plsはコードをコミュニケートに投稿しません。あなたの質問をすべての詳細で更新してください。 –

答えて

1

FacebookのiOSライブラリにバグがありました。 Plsは、FacebookのSDKライブラリを更新します。 FBSDKLoginKit(4.13.1)では、このバグが修正されました。

関連する問題