簡體   English   中英

Facebook 登錄 Swift 在設備上不起作用(但在 IOS 模擬器上起作用)

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

我在我的應用程序身份驗證中配置了 Swift 2 中的 Facebook 登錄。

在 IOS 模擬器(IOS 8 和 9)上一切正常:用戶單擊“使用 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)
    }

視圖控制器.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 仍處於開發模式。我忘記設置“聯系人姓名”並允許我的應用公開訪問。

臉書應用程序的設置:

  1. 轉到: https : //developers.facebook.com/apps/
  2. 我的應用程序 -> 設置 -> 基本 -> 聯系電子郵件 = 提供有效的電子郵件

  3. 我的應用程序 -> 狀態和評論選項卡 -> “您想讓公眾使用此應用程序及其所有實時功能嗎?” =

我遇到了同樣的問題。 我通過檢查登錄權限來修復。 還要再次檢查許可文本的拼寫錯誤。 確保您的權限在 developer.facebook.com 上全部啟用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM