App crashes using Facebook Login SDK when I go to the home screen

havak5

I originally downloaded the FBSDK's version 4.10 and integrated them into my application by placing them in the frameworks folder. Realizing that these would not get updated over time, I removed them completely and tried to add them as pods to my project. The pods installed successfully, I have imported them correctly in my bridging header file, and there were no other issues. The pods update installed version 4.11 which has caused me some headache.

I am using the FBSDKLoginKit to log a user into their account and retrieve information from that. I am able to get back a dictionary with the users information just fine. I then pass this information to the next ViewController with a segue. At any point after this, if I press the home button on my iPhone or simulator, the app will crash. The error I get is

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

This exception also occurs if I let the user log in through facebook, segue to the new view controller, unwind to the previous view controller, and then attempt to log in again. I have attempted to log the user out once retrieving their pertinent information on the second screen, but the error still persists.

I have seen a similar question asked where the "solution" was that the FBSDKLoginKit writes the retrieved dictionary to a variable and if the dictionary it has retrieved back has nil values, it throws this error.

Is there anything I can do to catch this before it happens? Has anyone found a work around?

Here is my output from the simulator when I press home:

*** First throw call stack:
(
0   CoreFoundation                      0x0000000106f03d85 __exceptionPreprocess + 165
1   libobjc.A.dylib                     0x000000010643edeb objc_exception_throw + 48
2   CoreFoundation                      0x0000000106e0023e -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 318
3   CoreFoundation                      0x0000000106e125bb +[NSDictionary dictionaryWithObjects:forKeys:count:] + 59
4   APPNAME                               0x0000000101607a1e -[FBSDKTimeSpentData instanceSuspend] + 622
5   APPNAME                                0x000000010160766b +[FBSDKTimeSpentData suspend] + 59
6   APPNAME                                0x00000001015b5986 -[FBSDKAppEvents applicationMovingFromActiveStateOrTerminating] + 262
7   CoreFoundation                      0x0000000106ecdc8c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
8   CoreFoundation                      0x0000000106ecd9cb _CFXRegistrationPost + 427
9   CoreFoundation                      0x0000000106ecd732 ___CFXNotificationPost_block_invoke + 50
10  CoreFoundation                      0x0000000106f161e2 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1986
11  CoreFoundation                      0x0000000106dc5679 _CFXNotificationPost + 633
12  Foundation                          0x000000010372ccd9 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
13  UIKit                               0x0000000104a685ad -[UIApplication _deactivateForReason:notify:] + 629
14  UIKit                               0x0000000104a6f1f1 __61-[UIApplication _sceneSettingsPreLifecycleEventDiffInspector]_block_invoke + 104
15  FrontBoardServices                  0x0000000108f88d6c __52-[FBSSettingsDiffInspector inspectDiff:withContext:]_block_invoke27 + 213
16  Foundation                          0x000000010377d5bb __NSIndexSetEnumerate + 1016
17  BaseBoard                           0x000000010901ba8c -[BSSettingsDiff inspectChangesWithBlock:] + 116
18  FrontBoardServices                  0x0000000108f83e4a -[FBSSettingsDiff inspectOtherChangesWithBlock:] + 92
19  FrontBoardServices                  0x0000000108f88b2f -[FBSSettingsDiffInspector inspectDiff:withContext:] + 317
20  UIKit                               0x0000000104a70880 __70-[UIApplication scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 127
21  UIKit                               0x0000000104a7052d -[UIApplication scene:didUpdateWithDiff:transitionContext:completion:] + 843
22  FrontBoardServices                  0x0000000108f978c8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
23  FrontBoardServices                  0x0000000108f97741 -[FBSSerialQueue _performNext] + 178
24  FrontBoardServices                  0x0000000108f97aca -[FBSSerialQueue _performNextFromRunLoopSource] + 45
25  CoreFoundation                      0x0000000106e29301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
26  CoreFoundation                      0x0000000106e1f22c __CFRunLoopDoSources0 + 556
27  CoreFoundation                      0x0000000106e1e6e3 __CFRunLoopRun + 867
28  CoreFoundation                      0x0000000106e1e0f8 CFRunLoopRunSpecific + 488
29  GraphicsServices                    0x0000000108ae7ad2 GSEventRunModal + 161
30  UIKit                               0x0000000104a72f09 UIApplicationMain + 171
31  APPNAME                                0x00000001013a26d2 main + 114
32  libdyld.dylib                       0x0000000107b0d92d start + 1
33  ???                                 0x0000000000000001 0x0 + 1

) libc++abi.dylib: terminating with uncaught exception of type NSException

Running my code step by step I find that the error occurs during the method:

fbLoginManager.logInWithReadPermissions(permissionsNeeded, fromViewController: self) { (result, error) -> Void in 
//crashes before it enters this block    
//my code here
}

It crashes before I can even check the error value. I will attempt to check the values by stepping into the fbsdk methods and update

fbsdk browser permissions login

As soon as I press OK on this screen for the second time it crashes. How can I debug this? The action isn't in my app, its in the browser so I'm not sure where to go from here..

titan

I have came across this issues recently, and i solved it by adding this piece of code in Appdelegate.m.

- (void)applicationDidBecomeActive:(UIApplication *)application {    

    [FBSDKAppEvents activateApp];
}

For Swift 3 version:

func applicationDidBecomeActive(_ application: UIApplication) {

    FBSDKAppEvents.activateApp()
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

crashes app when I log in using facebook auth

Home screen app (android) facebook login opens browser

Facebook SDK crashes after Login

React Native: Standalone, Expo built app on Android crashes when using Facebook login (works on iOS)

iOS - Facebook SDK v3.24.1 Login Screen is Blank except when using FBSessionLoginBehaviorForcingWebView

Android app crashes with Facebook Login

facebook login android app crashes

Login to my app using facebook : error when using Facebook App

Facebook login SDK app ID

Facebook login callback not working when using Facebook app - Swift

Get UserName when login with Facebook using SDK 3.15 in Android

Django : How can I fix this when adding facebook login to django app using social-auth?

I facing error on facebook sdk login using yii2

Unable to login using Facebook SDK

Facebook login using Facebook-PHP-SDK

Swift ios facebook login crashes app if user cancel login

Facebook SDK login works but then closes app after

Facebook app login using PHP SDK not working: The domain of this URL isn't included in the app's domains

My app keeps crashing when i deploy to heroku. i get this wried app error home screen

how to login with facebook with custom login button using facebook sdk

Android app crashes when "Continue with Facebook" pressed

React Native app crashes when login

Login with facebook crash the app if using FaceBook Lite

I keep getting a error when i press my login button Java and the app crashes

app crashes with MapView if i use sdk 29 ------

Facebook Login Crashes in Swift

App crashes when using TransitionDrawable

App crashes when using SharedPreferences

App crashes when using AsyncTask