Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Facebook SDK login throws error in swift 2 iOS 9

I tried to make a simple Facebook login with the Facebook SDK in iOS 9 and Swift 2 but it always throws me an error:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSTaggedPointerString containsObject:]: unrecognized selector sent to instance 0xa326874756162667'

It occurs in the usr/include/dispatch/once.h and I can't solve it alone. Does somebody have any idea?

The code is here:

import FBSDKCoreKit
import FBSDKLoginKit


let loginManager = FBSDKLoginManager()
loginManager.logInWithReadPermissions(["basic_info", "email", "user_likes"], fromViewController: self.parentViewController, handler: { (result, error) -> Void in
    if error != nil {
        print(FBSDKAccessToken.currentAccessToken())
    } else if result.isCancelled {
        print("Cancelled")
    } else {
        print("LoggedIn")
    }
})

UPDATED: Here is the full error stack:

2015-10-02 13:40:33.884 FacyNews[24902:1352812] -[NSTaggedPointerString containsObject:]: unrecognized selector sent to instance 0xa326874756162667
2015-10-02 13:40:33.889 FacyNews[24902:1352812] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSTaggedPointerString containsObject:]: unrecognized selector sent to instance 0xa326874756162667'
*** First throw call stack:
(
	0   CoreFoundation                      0x000000010dbe8f65 __exceptionPreprocess + 165
	1   libobjc.A.dylib                     0x000000010f87adeb objc_exception_throw + 48
	2   CoreFoundation                      0x000000010dbf158d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
	3   CoreFoundation                      0x000000010db3ef7a ___forwarding___ + 970
	4   CoreFoundation                      0x000000010db3eb28 _CF_forwarding_prep_0 + 120
	5   FBSDKCoreKit                        0x000000010d52ea8b +[FBSDKInternalUtility isRegisteredCanOpenURLScheme:] + 171
	6   FBSDKCoreKit                        0x000000010d52e8da +[FBSDKInternalUtility checkRegisteredCanOpenURLScheme:] + 362
	7   FBSDKCoreKit                        0x000000010d52d0ed __46+[FBSDKInternalUtility isFacebookAppInstalled]_block_invoke + 45
	8   libdispatch.dylib                   0x0000000110ded49b _dispatch_client_callout + 8
	9   libdispatch.dylib                   0x0000000110dd8e28 dispatch_once_f + 543
	10  FBSDKCoreKit                        0x000000010d52cff7 +[FBSDKInternalUtility isFacebookAppInstalled] + 87
	11  FBSDKLoginKit                       0x000000010d6d6cb1 -[FBSDKLoginManager logInParametersWithPermissions:] + 449
	12  FBSDKLoginKit                       0x000000010d6d7358 -[FBSDKLoginManager logInWithBehavior:] + 88
	13  FBSDKLoginKit                       0x000000010d6d72d4 -[FBSDKLoginManager logInWithPermissions:handler:] + 292
	14  FBSDKLoginKit                       0x000000010d6d55e7 -[FBSDKLoginManager logInWithReadPermissions:fromViewController:handler:] + 343
	15  FacyNews                            0x000000010d3a2e5c _TFFC8FacyNews20MasterViewController14viewWillAppearFS0_FSbT_U_FCSo13UIAlertActionT_ + 700
	16  FacyNews                            0x000000010d3a3297 _TTRXFo_oCSo13UIAlertAction_dT__XFo_iS__iT__ + 23
	17  FacyNews                            0x000000010d39e131 _TPA__TTRXFo_oCSo13UIAlertAction_dT__XFo_iS__iT__ + 81
	18  FacyNews                            0x000000010d3a2b40 _TTRXFo_iCSo13UIAlertAction_iT__XFo_oS__dT__ + 32
	19  FacyNews                            0x000000010d3a2b8c _TTRXFo_oCSo13UIAlertAction_dT__XFdCb_dS__dT__ + 60
	20  UIKit                               0x000000010e709fa5 -[UIAlertController _fireOffActionOnTargetIfValidForAction:] + 96
	21  UIKit                               0x000000010e70a785 __85-[UIAlertController _dismissAnimated:triggeringAction:triggeredByPopoverDimmingView:]_block_invoke + 30
	22  UIKit                               0x000000010e55fc9f -[UIPresentationController transitionDidFinish:] + 1248
	23  UIKit                               0x000000010e563210 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke_2 + 183
	24  UIKit                               0x000000010edb31e9 -[_UIViewControllerTransitionContext completeTransition:] + 101
	25  UIKit                               0x000000010e4a9daa -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 644
	26  UIKit                               0x000000010e4883a7 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 241
	27  UIKit                               0x000000010e488756 -[UIViewAnimationState animationDidStop:finished:] + 80
	28  QuartzCore                          0x00000001135e8d70 _ZN2CA5Layer23run_animation_callbacksEPv + 308
	29  libdispatch.dylib                   0x0000000110ded49b _dispatch_client_callout + 8
	30  libdispatch.dylib                   0x0000000110dd534b _dispatch_main_queue_callback_4CF + 1738
	31  CoreFoundation                      0x000000010db493e9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
	32  CoreFoundation                      0x000000010db0a939 __CFRunLoopRun + 2073
	33  CoreFoundation                      0x000000010db09e98 CFRunLoopRunSpecific + 488
	34  GraphicsServices                    0x00000001130a2ad2 GSEventRunModal + 161
	35  UIKit                               0x000000010e403676 UIApplicationMain + 171
	36  FacyNews                            0x000000010d39959d main + 109
	37  libdyld.dylib                       0x0000000110e2192d start + 1
	38  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

Thanks in advance.

like image 740
Gabriel Avatar asked Oct 02 '15 11:10

Gabriel


2 Answers

I have solved the problem. As there is no anything about LSApplicationQueriesSchemes in the documentation but I got an error message about the lack of it I wrote the key and the "fbauth2" value into the info.plist as a String but it is an array and the SDK try to get the element of the String Array without any check if it is an array.

However, thank you for the helping answers.

like image 127
Gabriel Avatar answered Sep 21 '22 06:09

Gabriel


Check the link to know more about adding 'fbauth2' to .plist while integrating FacebookSDK in iOS9.

FYI,
I was facing a crash with the following message:

*** Terminating app due to uncaught exception 'InvalidOperationException', reason: 'fbauth2 is missing from your Info.plist under LSApplicationQueriesSchemes and is required for iOS 9.0'
*** First throw call stack:

And solved it by adding the following in .plist

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>
like image 45
Ashok Avatar answered Sep 21 '22 06:09

Ashok