Facebook的iOS 3.1 SDK:可以用Safarilogin,但不能原生

我正在整合iOS 3.1 Facebook SDK。 当用Facebookfunction实现login时,我调用FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler: 当在模拟器(我没有本地设置的FB账户)上调用时,我可以成功login。

但是,从具有本地Facebook帐户设置的设备,在调用openActiveSessionWithReadPermissions...时,完成处理程序中返回的会话types始终是sessionStateClosedLoginFailed ,无论我允许还是不允许我的应用程序在警报对话框中使用Facebook。 调用方法之前的会话状态是sessionStateCreated

这是来自完成处理程序的NSErrorError Domain=com.facebook.sdk Code=2 "The operation couldn't be completed. (com.facebook.sdk error 2.)" UserInfo=0x20a80820 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:ErrorLoginFailedReason, com.facebook.sdk:ErrorInnerErrorKey=Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 3840.)" (No value.) UserInfo=0x208ed930 {NSDebugDescription=No value.}}

我做错了什么会导致这个问题?

更新 :我刚刚注意到我的应用程序没有出现在设置> Facebook>“允许这些应用程序使用您的帐户”部分(这是肯定在今天早些时候)。

更新2 :如果我从iOS设置应用程序中删除我的帐户,然后将我的testing用户login到Facebook iPhone应用程序,我可以通过快速应用程序切换进行login。 所以这似乎只是一个本地帐户的问题。

Update3 :我运行示例Facebook应用程序至极我有同样的问题。 点击“login”,调用openActiveSessionWithRead...我得到相同的错误。

Update4 :可能与这个bug有关? http://developers.facebook.com/bugs/450137751688028?browse=search_50a43a39b37ae4868318658

Update5 :我之前应该提到过,但是这是一个Facebooktesting用户帐户,有这个问题。

我从使用Facebooktesting用户帐户切换到常规帐户,这就解决了这个问题,在美味的应用程序和我的应用程序。

你有没有在你的plist中设置FacebookAppID ? 请参阅“Facebook 入门指南 ”第5部分的“添加您的Facebook应用程序ID”。 另外,请检查设备设置的“Facebook”部分,以确保您的应用程序未被授权(在这种情况下,除非手动这样做,否则将不会被授权)。