2

我遵循了 Facebook 开发者网站上关于将 Facebook SDK 3.1 集成到 iOS 6 中的所有指示。我的代码在 iPhone 6.0 模拟器上完美运行(用户可以登录 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: 方法。也许这是一个构建问题,因为它在模拟器上运行良好?有任何想法吗?

4

2 回答 2

5

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

App Store ID 与 Bundle ID 不同。就像 Facebook 上所说的:“出于安全原因,我们在授权您的应用程序之前检查捆绑 ID”。因此,您应该将其设置为与您在 Xcode 中所做的完全相同。

但是 App Store ID(“我们可以在 Facebook 上链接到的 iPhone App Store ID”)是您在提交应用程序并被接受时设置的。因此,出于开发目的,您应该将 iPhone 和 iPad(如果有)设置为 0,我所做的,它在 Simulator 和 iPhone iOS 6.0 上都可以正常工作。

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

于 2012-11-24T11:31:56.180 回答
2

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

于 2012-09-27T00:47:08.823 回答