2016-11-24 3 views
2

Неужели кто-нибудь испытывает эту проблему? После нажатия кнопки входа в систему и запуска процесса пользователь застрянет на этом экране, где вы должны включить или подтвердить разрешения для приложения. Однако здесь нечего делать.Facebook Вход в систему iOS SDK застрял в «Подтверждении»

Screenshot from iOS Simulator

+0

Я в настоящее время имеющий точно такой же вопрос в моем приложении! Сначала я подумал, что это ошибка кордоновского плагина, который я использую, но, видя, что ты родной, я чувствую, что тот, кто виноват. – Mencls

+0

Я также сталкиваюсь с той же проблемой, не могу найти что-либо, наверняка что-то не так. @ Facebook это тоже происходит в живых приложениях (только IOS), приложения для Android работают нормально. – Alok

+0

Похоже, проблема была исправлена ​​в соответствии с этим сообщением об ошибке: https://developers.facebook.com/bugs/180459832419216/?comment_id=619998781505655 – amudi

ответ

0
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

Смежные вопросы