Facebook 登录 Swift 在设备上不起作用(但在 IOS 模拟器上起作用)

Facebook Login Swift don't works On Device (But do on IOS Simulator)

我在 Swift 2.

中使用 Facebook 登录配置我的应用程序身份验证

在 IOS 模拟器 (IOS 8 和 9)上一切正常:用户点击 "Login with Facebook",然后打开一个 safari 页面,然后身份验证继续,最后用户正确登录:

但是当我试穿我的 Ipod Touch 时,它总是阻塞并失败此消息(抱歉,出了点问题。我们正在处理它,我们会尽快修复它),我的用户未登录:

我尝试了很多东西:

  1. 更改Facebook SDK(我试过4.0 Facebook SDK)
  2. 在 IOS 8.4 升级我的 ipod touch,然后在 IOS 9.
  3. 将 Xcode 7beta 降级为 XCode 6
  4. 删除 Ipod Touch 上的 Facebook 应用程序并重新安装

但仍然无法正常工作..任何帮助将不胜感激!

这是我的代码:

AppDelegate.swift

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

        //For Facebook Login
        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)
    }

ViewController.swift

class ViewController: UIViewController, FBSDKLoginButtonDelegate {

    @IBOutlet weak var signInButtonFB: FBSDKLoginButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        //Configure Facebook
        signInButtonFB.readPermissions = ["public_profile", "email", "user_friends"]
        signInButtonFB.delegate = self


        //Configure Facebook SignIn
        if (FBSDKAccessToken.currentAccessToken() != nil)
        {
            print("Logged in !")

        }
        else
        {
            print("not logged")

        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    //MARK: Facebook
    func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {

        print("Début login Button")
        if ((error) == nil)
        {
            print("Login Complete")

            returnUserData()
        }
        else {
            print ("Voici l'erreur:"+error.localizedDescription)
        }
    }

    func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
        print("User Logged Out")
    }

看来我的应用程序 Facebook 仍处于开发模式.. 我忘记设置 "Contact Name" 并允许我的应用 public 访问。

FACEBOOK 应用程序设置:

  1. 转到:https://developers.facebook.com/apps/
  2. 我的应用程序 -> 设置 -> 基本 -> 联系人电子邮件 = 提供电子邮件有效

  3. 我的应用程序 -> 状态和评论选项卡 -> "Do you want to make this app and all its live features available to the general public?" =

我遇到了同样的问题。我通过检查登录权限来修复。 还要再次检查许可文本的拼写错误。 确保您的权限在 developer.facebook.com.

上全部启用