iOS - Facebook登录错误 - 构建URL时出现未知错误(com.facebook.sdk.core错误3)

Muh*_*lvi 22 facebook facebook-graph-api ios facebook-login

我正在使用Facebook登录为我的iOS应用程序开发iOS 8及更高版本.(正在使用最新的Facebook SDK)

我遵循了Facebook官方指南中描述的所有基本步骤.但是,当我单击登录按钮时,它会给我以下错误:

构建URL的未知错误(com.facebook.sdk.core错误3)

我已经检查过,看看我可能做错了什么,但一切似乎都按照指南,我已经被困在这里一天了.

FB登录代表的代码:

class FBLoginDelegate: NSObject,  FBSDKLoginButtonDelegate  {


func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!){
    if(error == nil){
        print("Logged In from Btn")
    }else{
        print("Error: \(error.localizedDescription)") //Here it gives the error 
    }

}
}
Run Code Online (Sandbox Code Playgroud)

FB登录按钮代码:

      var fbLoginBtnDelegate = FBLoginDelegate()
    let fbBtnWidth = self.view.bounds.width - (self.fbContainerLeftConstraint.constant + self.fbContainerRightConstraint.constant)
    let fbLoginButton = FBSDKLoginButton(frame: CGRectMake(0,0,fbBtnWidth,self.fbButtonContainer.bounds.size.height))

    self.fbButtonContainer.addSubview(fbLoginButton)
    fbLoginButton.readPermissions = ["public_profile", "user_friends", "email", "user_birthday"]
    fbLoginButton.delegate = fbLoginBtnDelegate
Run Code Online (Sandbox Code Playgroud)

Dav*_*Liu 64

如果您将Facebook iOS SDK升级到版本4.39.0,则会出现导致此错误的错误.降级到4.38.1将帮助您解决此问题.一定要降级FBSDKCoreKit和FBSDKLoginKit.

pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
Run Code Online (Sandbox Code Playgroud)

请务必清理构建文件夹并重新构建SDK.

更新:此错误已在4.39.1 SDK版本中修复.https://developers.facebook.com/docs/ios/change-log-4x/

  • 这些问题已在4.39.1中修复 (3认同)
  • 很高兴大卫,感谢您指定CocoaPod库. (2认同)

sha*_*zar 7

这是版本4.39.0中的Facebook SDK错误,导致此错误.为了解决这个问题,只需将CoreKit和LoginKit降级到4.38.0,清除派生数据以及清理构建文件夹(CMD + OPTION + SHIFT + K).而4.38.1也可以正常工作.

pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
Run Code Online (Sandbox Code Playgroud)

如果您使用的是FacebookCore和FacebookLogin,请执行以下操作.

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
Run Code Online (Sandbox Code Playgroud)


Mat*_*ros 2

对我来说,问题在于CFBundleURLTypes> CFBundleURLSchemes中指示的 Facebook App IDInfo.plist拼写错误。

我从文件导入应用程序 ID .xcconfig,以便其基础值根据我是否运行DebugRelease方案而变化。但是,当我打印 plist 文件时,从文件读取时,应用程序 ID 周围有不必要的引号xcconfig。例如,URL 方案应为 的地方fb012345678,却是fb"012345678"

我尝试将应用程序 ID 正确硬编码到Info.plistFacebook 指南中所述的内容中,结果FBSDKLoginButton成功了。Safari 出现并显示 Facebook 登录屏幕。不过,您不必对 ID 进行硬编码 - 只需确保它们在Info.plist.