Facebook登录Swift无法在设备上运行(但在IOS模拟器上运行)

时间:2015-09-17 11:16:04

标签: ios swift facebook-login facebook-sdk-4.0

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

一切都在IOS模拟器上完美运行(IOS 8和9):用户点击“使用Facebook登录”,然后打开一个Safari页面,然后继续验证并最终正确记录用户:

enter image description here

但是当我尝试 Ipod Touch 时,总是阻止此消息抱歉,出现了问题我们正在努力,我们会尽快修复它,并且我的用户不会被记录:

enter image description here

我尝试了很多东西:

  1. 更改Facebook SDK(我尝试过4.0 Facebook SDK)
  2. 升级IOS 8.4上的ipod touch,接下来是IOS 9。
  3. 将Xcode 7beta降级为XCode 6
  4. 在Ipod Touch上删除Facebook应用并重新安装
  5. 但仍然没有工作.. 任何帮助都将不胜感激!

    这是我的代码:

    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")
        }
    

2 个答案:

答案 0 :(得分:0)

看起来我的应用Facebook仍处于开发模式.. 我忘记设置“联系人姓名”并允许我的应用程序公开访问。

为FACEBOOK APP设置:

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

  3. 我的应用 - >状态和审核标签 - > “你想让这个应用程序及其所有实时功能向公众开放吗?” =

答案 1 :(得分:0)

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