Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-Facebook登录错误-生成URL时出现未知错误(com.Facebook.sdk.core Error 3)_Ios_Facebook_Facebook Graph Api_Facebook Login - Fatal编程技术网

iOS-Facebook登录错误-生成URL时出现未知错误(com.Facebook.sdk.core Error 3)

iOS-Facebook登录错误-生成URL时出现未知错误(com.Facebook.sdk.core Error 3),ios,facebook,facebook-graph-api,facebook-login,Ios,Facebook,Facebook Graph Api,Facebook Login,我正在为iOS 8及更高版本开发的iOS应用程序使用Facebook登录。(正在使用最新的Facebook SDK) 我遵循了Facebook官方指南中描述的所有基本步骤。但是,当我单击“登录”按钮时,会出现以下错误: 生成URL时出现未知错误(com.facebook.sdk.core错误3) 我检查了一下,看看我可能做错了什么,但一切似乎都按照指南进行,我在这里被困了一天 FB登录委托的代码: class FBLoginDelegate: NSObject, FBSDKLoginButto

我正在为iOS 8及更高版本开发的iOS应用程序使用Facebook登录。(正在使用最新的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 
    }

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

对我来说,问题在于
CFBundleURLTypes
>
Info.plist
中的
CbundleurlSchemes
拼写错误

我从
.xcconfig
文件导入应用程序ID,以便其基础值根据我运行的是
Debug
还是
Release
方案而变化。但是,当我打印plist文件时,从
xcconfig
文件读取时,在app ID周围有不必要的引号。例如,URL方案应该是
fb012345678
,它是
fb“012345678”


我尝试将应用程序ID正确地硬编码到Facebook指南中所述的
Info.plist
,而
FBSDKLoginButton
刚刚起作用。Safari出现在Facebook登录屏幕上。您不必硬编码ID,只要确保在
Info.plist

中正确替换ID即可。如果您将Facebook iOS SDK升级到4.39.0版,则会出现导致此错误的错误。降级到4.38.1将帮助您解决此问题。确保同时降级FBSDKCoreKit和FBSDKLoginKit

pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
确保清理build文件夹并重新构建SDK


更新:此错误已在4.39.1 SDK版本中修复

这是导致此错误的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'
如果您使用的是FacebookCore和FacebookLogin,请执行以下操作

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'

我是按照react native fbsdk的说明进行操作的,您应该在其中将框架文件/文件夹复制到项目中。因此,上面给出的Cocoapod方法对我不起作用

我所做的是从项目中删除现有的框架文件(右键单击框架项->删除->是全部删除),然后通过从以下位置下载来再次添加以前版本的框架:


在终端中导航到项目文件夹并使用

吊舱更新
要更新到当前版本4.39.1,我必须做两件事才能让它正常工作

1.将吊舱降级为 2.从其他链接器标志中删除-ObjC 尽管facebook开发者门户网站中已经提出了这一建议。这将生成以下错误:

com.facebook.sdk:fbsdkerrodeveloperMessageKey=生成URL时出现未知错误。


希望这能有所帮助。

请提供发生错误的代码。使用代码进行更新,但正如文档中所述,这很简单,我不知道出了什么问题。请帮助自从您发布此消息后,iOS SDK有了一个新版本(v4.10.0),您可以升级并重试吗?另外,这是否发生在iOS 8/9模拟器中的设备上?很好,大卫,谢谢你指定CocoaPod库。可能与此有关!有人把这个转发给Facebook让他们知道吗?你是个救命恩人,在这个问题上真的把我的头撞到墙上了。问题已经在4.39.1上解决了。问题已经在4.39.1上解决了
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'