1

我在我的应用程序中实现了 Facebook,并注意到我有一些我无法解决的问题。

当 Facebook signle-signon 在 Facebook.app 中获得批准后返回我的应用程序时,同时从 XCode 运行和调试.. 应用程序在恢复时会挂起,大约 30 - 40 秒后它会切换回请求 facebook 身份验证的页面。当我独立运行应用程序时,没有在 XCode 中进行调试,应用程序会在 10 到 15 秒后崩溃。我从设备中提取了崩溃日志,结果如下:http: //pastebin.com/MeT7Rt52

当我在模拟器中测试它时,同样的事情发生了......尽管它使用的是 Safari。我不相信 Facebook 或 Safari 是或可能是问题的根源......因为它不可能。

我已经搜索和搜索,但找不到这个问题的答案。

这是我的 AooDelegate 中的一些代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
    [FlurryAnalytics startSession:APP_FLURRY];

    [TestFlight takeOff:APP_TESTFLIGHT_KEY];
    facebook = [[Facebook alloc] initWithAppId:APP_FB_APP_ID andDelegate:self];

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window setBackgroundColor:[UIColor scrollViewTexturedBackgroundColor]];

    [...]

    return YES;
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [facebook handleOpenURL:url]; 
}

- (void)fbDidLogin {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
    [defaults synchronize];
}
4

3 回答 3

2

我认为这不会解决问题,但是,您可以尝试添加此方法:

- (BOOL)application:(UIApplication *)application 
            openURL:(NSURL *)url 
  sourceApplication:(NSString *)sourceApplication 
         annotation:(id)annotation  {
    return [facebook handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url弃用。

于 2012-05-08T21:12:36.240 回答
0

我孤立了这个问题,这个问题的答案是我没想到的。在我的应用程序中,我使用TestFlightApp的 API。我应该在启动应用程序时启动它,因为我应该......但是,这也是阻止应用程序返回到其先前状态的事情(看起来)。

我禁用了 TestFligthApp,应用程序恢复正常。

谢谢您的回答!

于 2012-05-08T21:16:59.787 回答
0

Facebook SDK 是完整的错误,我使用的是 Facebook + 单例,它将 Facebook SDK 组合成单例形式,使其更易于使用。

于 2012-05-08T21:04:28.193 回答