1

私は自分のアプリケーションにFacebookを実装しましたが、理解できない問題があることに気づきました。

Facebook.appでの承認後、Facebook signle-signonがアプリケーションに戻ると、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

Facebook SDKは完全なバグです。私が使用しているのは、Facebook +シングルトンです。これは、Facebook SDKをシングルトン形式に組み合わせて、操作を簡単にします。

于 2012-05-08T21:04:28.193 に答える
0

I isolated the problem, and the answer to the question is something that I didn't expect it to be. In my application, I use TestFlightApp's API. I initiate it when the application is launched, as I should... however, this is also the thing that prevents the app from returning to its previous state (as it seems).

I dissabled TestFligthApp and the application resumed as it should.

Thank you for your answers!

于 2012-05-08T21:16:59.787 に答える