16

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.

Gabriel
  • 456
  • 3
  • 13
  • Have you added the `LSApplicationQueriesSchemes` key to your info.plist? Take a look at this answer: http://stackoverflow.com/a/32441523/228981 which shows how it should look for various social networks. – ChrisH Oct 02 '15 at 12:53
  • @ChrisH Yes, I added but as I answered I added it on the wrong way and the SDK didn't check it if it is an array of strings or not. – Gabriel Oct 02 '15 at 15:58
  • @Gabriel..can you post the working code? I am facing issues in swift 2.0 too – Saty Dec 24 '15 at 13:04

3 Answers3

23

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.

Gabriel
  • 456
  • 3
  • 13
4

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>
Dani Pralea
  • 4,545
  • 2
  • 31
  • 49
Ashok
  • 5,585
  • 5
  • 52
  • 80
-1

I think your error is not in the code you posted. But try to remove the "basic_info" permission because it is deprecated and in iOS 9 it could make some unexpected value.

You can read this:

"Previously, basic_info was a permission you had to ask for and implied public_profile and user_friends together. With the New Facebook Login basic_info is now deprecated and should not be requested. Instead, ask for public_profile and user_friends (if needed) explicitly."

Here

ezefire
  • 782
  • 5
  • 18