FBRequest requestForMe startWithCompletionHandler方法不能在设备上工作

我遵循Facebook开发者网站关于将Facebook SDK 3.1集成到iOS 6的所有方向。我的代码在iPhone 6.0模拟器(用户可以login到Facebook)上完美运行,但是当我在我的iPhone上运行应用程序时,函数[ FBRequest requestForMe] startWithCompletionHandler]不会生成响应。 根据Facebook开发者网站,它应该是成功或返回一个错误,但它既不。 该应用程序只是坐在那里等待一个永远不会到来的回应。 我的代码如下:

- (void)populateUserDetails { if (FBSession.activeSession.isOpen) { [[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) { if (!error) { NSLog(@"logged in"); } else { NSLog(@"error: %@", error); } }]; } else { NSLog(@"no active session"); } } 

使用断点,我确定activeSession始终是打开的,所以实际上调用了startWithCompletionHandler:方法。 也许这是一个生成问题,因为它在模拟器上运行良好? 有任何想法吗?

确保没有为您的App Store ID自动插入“0”值

App Store ID与Bundle ID不同。 就像在Facebook上所说:“出于安全原因,我们在授权您的应用程序之前检查套件ID”。 所以你应该像Xcode一样设置它。

但是,当你已经提交你的应用程序,它被接受,你设置它们的App Store ID(我们可以链接到Facebook上的“iPhone App Store ID”)。 因此,为了开发目的,你应该将iPhone和iPad(如果有的话)设置为0,我在模拟器和iPhone iOS 6.0上都能正常工作。

那不是因为那个0,也许你修了别的东西?

回答我自己的问题:转到您的Facebook应用程序页面,并确保没有自动为您的App Store ID插入“0”值。 我已经将我的包ID设置为正确的值(您也必须这样做),但在一夜之间,Facebook自动将App Store ID值设置为0。