facebook sdk在应用程序委托

时间:2016-12-09 15:54:56

标签: ios swift facebook

这是我如何复制错误。所以这里是我登录的代码:

@IBAction func FBLoginAction(_ sender: AnyObject) {
    fbLoginManager.loginBehavior = FBSDKLoginBehavior.browser
    fbLoginManager.logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self) { (result, error) -> Void in
        if (error != nil) {
            return
        }
    }
 }

如果我登录两次,然后再次运行该应用程序,此行将在appdelegate中崩溃。

    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

如果我只登录一次,再次运行应用程序,则不会发生崩溃。崩溃的完整堆栈如下:

  

2016-12-09 10:51:28.893持久性[73125:897290]    - [NSConcreteMutableData isEqualToString:]:无法识别的选择器发送到实例0x60000004ec40 2016-12-09 10:51:28.903   持久性[73125:897290] ***由于未被捕获而终止应用程序   异常' NSInvalidArgumentException',原因:   ' - [NSConcreteMutableData isEqualToString:]:发送无法识别的选择器   例如0x60000004ec40'

     

***第一次抛出调用堆栈:(0 CoreFoundation 0x00000001085e634b exceptionPreprocess + 171 1 libobjc.A.dylib
  0x0000000107c2a21e objc_exception_throw + 48 2 CoreFoundation
  0x0000000108655f34 - [NSObject(NSObject)doesNotRecognizeSelector:] +   132 3 CoreFoundation 0x000000010856bc15   ___ forwarding _
+ 1013 4 CoreFoundation 0x000000010856b798 _CF_forwarding_prep_0 + 120 5 FBSDKCoreKit
  0x000000010700aa5a - [FBSDKAccessTokenCacheV4 fetchAccessToken] + 202     6 FBSDKCoreKit 0x000000010700902c    - [FBSDKAccessTokenCache fetchAccessToken] + 92 7 FBSDKCoreKit 0x0000000107017d2d - [FBSDKApplicationDelegate   application:didFinishLaunchingWithOptions:] + 125 8 Persistence
  0x000000010572bcb7   _TFC11Persistence11AppDelegate11applicationfTCSo13UIApplication29didFinishLaunchingWithOptionsGSqGVs10DictionaryVSC29UIApplicationLaunchOptionsKeyP____Sb   + 727 9持久性0x000000010572cfb4 _TToFC11Persistence11AppDelegate11applicationfTCSo13UIApplication29didFinishLaunchingWithOptionsGSqGVs10DictionaryVSC29UIApplicationLaunchOptionsKeyP____Sb   + 180 10 UIKit 0x00000001091110be - [UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 290 11 UIKit 0x0000000109112a43    - [UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4236 12 UIKit 0x0000000109118de9    - [UIApplication _runWithMainScene:transitionContext:completion:] + 1731 13 UIKit 0x0000000109115f69    - [UIApplication workspaceDidEndTransaction:] + 188 14 FrontBoardServices 0x000000010d698723    FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK + 24 15 FrontBoardServices 0x000000010d69859c    - [FBSSerialQueue _performNext] + 189 16 FrontBoardServices 0x000000010d698925 - [FBSSerialQueue _performNextFromRunLoopSource] +   45 17 CoreFoundation 0x000000010858b311    CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 18 CoreFoundation 0x000000010857059c   __CFRunLoopDoSources0 + 556 19 CoreFoundation 0x000000010856fa86 __CFRunLoopRun + 918 20 CoreFoundation
  0x000000010856f494 CFRunLoopRunSpecific + 420 21 UIKit
  0x00000001091147e6 - [UIApplication _run] + 434 22 UIKit
  0x000000010911a964 UIApplicationMain + 159 23持续性
  0x000000010572d97f main + 111 24 libdyld.dylib
  0x000000010b3a368d start + 1)libc ++ abi.dylib:终止于   NSException类型的未捕获异常

3 个答案:

答案 0 :(得分:10)

我恢复到Facebook SDK的4.17.0版本,我不再受到崩溃。

答案 1 :(得分:2)

如果您使用的是Facebook SDK版本4.18.0,请将其更新为4.19.0或当前版本,这样您就不会崩溃。

答案 2 :(得分:0)

确保FBSDK中没有Podfile的限制版本,如下所示:

pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'

然后执行pod update。不要使用--no-repo-update来更新您的本地规格库。

最新的本地规格存储库可让您下载最新版本的FBSDK,即4.19.0