Facebook 登录在某些 iOS 设备上总是出错

Facebook Login always erroring out on some iOS devices

我有一个简单的应用程序,我在 iOS 上通过 Facebook SDK 集成了 Facebook 登录。当用户点击 "Signup With FaceBook" 按钮时,我有以下代码段:

// Open a session showing the user the login UI
// You must ALWAYS ask for public_profile permissions when opening a session
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile", @"email"]
                                   allowLoginUI:YES
                              completionHandler:
 ^(FBSession *session, FBSessionState state, NSError *error) {

这适用于大多数设备,但在某些设备上,此错误会随着 NSError 返回为:

Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)" 
UserInfo=0x178467a40 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginCancelled, 
com.facebook.sdk:ErrorInnerErrorKey=Error Domain=com.apple.accounts 
Code=7 "The Facebook server could not fulfill this access request: The proxied 
  app cannot request publish permissions without having being 
  installed previously."

错误说我需要请求发布许可,但我请求的是 "public_profile" 和 "email" 我缺少什么?

更新:看起来在设备上失败是因为用户在“设置”中登录了 FaceBook。我希望 Facebook SDK 做正确的事情,而不是它以某种方式执行上述操作。我还需要其他什么来完成这项工作吗?没有实现 SocialKit 和 FaceBook SDK?

经过大量实验后发现问题,在权限中请求 "public_profile" 以某种方式使 iOS 在请求中请求 read/write 权限并触发上述错误。 - 有各种线程要求 read/write 权限失败。

只要求 "email" 就足够了,因为它隐含地获得了 public 配置文件。