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) {
//
}
があります。
xcodeで例外ブレークポイントを有効にし、例外が発生したときにどこにヒットするかを確認します。 @(_ numInterruptionsInCurrentSession)を、 FBSDKTimeSpentPersistKeyLastSuspendTime: NSDictionaryの* timeSpentData = @ { FBSDKTimeSpentPersistKeySessionSecondsSpent:@(_ secondsSpentInCurrentSession)、 FBSDKTimeSpentPersistKeySessionNumInterruptionsを –
例外は、我々が持っているライン149-155で、FBSDKCoreKitファイル、すなわちFBSDKTimeSpentData.mのいずれかで発生します。 @(現在)、 FBSDKTimeSpentPersistKeySessionID:_sessionID、 }; _sessionIDがnil – jonaszmclaren
例外は、ディクショナリにnill値が挿入されていることを示します。私たちはあなたが関連するコードを投稿しない限り、私たちを助けることはできません.Plsはコードをコミュニケートに投稿しません。あなたの質問をすべての詳細で更新してください。 –