升级到SDK 4.1后,Facebook登录失败(总是被取消)

win*_*zed 6 facebook ios facebook-sdk-4.0 swift

我已经在iOS应用程序(已经上线)中将Facebook SDK从3.21.1升级到4.1.

我仔细阅读了升级指南,并实现了新的登录方法.我使用的代码是Facebook文档中提供的代码.

但自升级以来,每次我尝试登录(设备或模拟器,webview或Facebook应用程序),我都可以成功完成登录流程,但当我回到我的应用程序时,登录不会返回任何错误但返回一个FBSDKLoginManagerLoginResult"isCancelled".

作为一种解决方法,我尝试实现不需要登录的应用程序邀请,但是我在控制台中遇到了"试图在FB中进行身份验证"...这里也没有运气.

所以我想它与info.plist中的身份验证回退和URL方案有关,但我在那里进行了双重检查,数据(在升级之前工作正常)与Facebook文档中指出的数据相同.

任何人都有任何线索?谢谢!

我已经检查过:

  • 我没有更改已经设置为使用Facebook SDK的info.plist,并且在升级之前工作正常.
  • 我用于登录的用户帐户在升级之前也工作正常.
  • 我在登录过程之前或之后没有任何currentAccessToken.

win*_*zed 8

感谢Dheeraj及其对类似问题的回答,我在电话中发现了错误.我刚刚在Swift中犯了最愚蠢的错误.在不太可能的事件中,有人像我读到的那样愚蠢,这里是你应该在AppDelegate.swift中添加的Swift中的3个调用.他们经过测试和工作:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    // Do what you have to do but at the end, instead of 'return true', put :

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

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}

func applicationDidBecomeActive(application: UIApplication) {
    FBSDKAppEvents.activateApp()
}
Run Code Online (Sandbox Code Playgroud)