Facebook登录iOS SDK被卡在“Confirm”

问题描述:

有没有人遇到过这个问题?按下登录按钮并启动该过程后,用户将卡在此屏幕上,您应在其中启用或确认应用程序的权限。但是,这里没有什么可做的。Facebook登录iOS SDK被卡在“Confirm”

Screenshot from iOS Simulator

+0

我目前有我的应用程序完全一样的问题!我首先以为这是我正在使用的科尔多瓦插件的错,但看到你是原生的,我觉得Facebook是一个罪魁祸首。 – Mencls

+0

我也面临同样的问题,无法找到任何东西,肯定会出现错误@脸书这发生在现场运行的应用程序也(只有IOS),Android应用程序工作正常。 – Alok

+0

看起来问题已根据此错误报告修复:https://developers.facebook.com/bugs/180459832419216/?comment_id = 619998781505655 – amudi

In appdelegate: 

import FacebookCore 

func application(_ application: UIApplication, 
        didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) 

    return true 
} 

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 
    return SDKApplicationDelegate.shared.application(application, 
                open: url, 
                sourceApplication: sourceApplication, 
                annotation: annotation) 
} 


@available(iOS 9.0, *) 
func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool { 
    return SDKApplicationDelegate.shared.application(application, open: url, options: options) 
} 

func applicationDidBecomeActive(_ application: UIApplication) { 
    AppEventsLogger.activate(application) 
} 


In View Controller 

import FacebookCore 
import FacebookLogin 


func facebookLogin() { 
    let loginManager = LoginManager() 
    loginManager.logIn([ .email ], viewController: self) { (loginResult) in 
     switch loginResult { 
     case .failed(let error): 
      print(error) 
     case .cancelled: 
      print("User cancelled login.") 
     case .success(let grantedPermissions, let declinedPermissions, let accessToken): 
      print("Logged in \(grantedPermissions) \(declinedPermissions) \(accessToken)") 
     } 
    } 
} 

And if you have multiple social login like facebook login and google signin 

func application(_ application: UIApplication, 
       open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 

    var _: [String: AnyObject] = [UIApplicationOpenURLOptionsKey.sourceApplication.rawValue: sourceApplication as AnyObject, 
             UIApplicationOpenURLOptionsKey.annotation.rawValue: annotation as AnyObject] 

    if url.absoluteString.contains("facebook") { 
     return SDKApplicationDelegate.shared.application(application, 
                 open: url, 
                 sourceApplication: sourceApplication, 
                 annotation: annotation) 
    }else{ 
     return GIDSignIn.sharedInstance().handle(url as URL!, 
               sourceApplication: sourceApplication, 
               annotation: annotation) 
    } 
} 

上述编辑应该工作。

来源: https://github.com/facebook/facebook-sdk-swift/blob/master/Samples/Catalog/Sources/AppDelegate.swift