7

自从将 Facebook 更新到 v4.0.x 和最新的 Parse 库后,我的应用程序似乎在尝试登录用户时挂起。

我的堆栈跟踪如下所示:

在此处输入图像描述

我以前有一个非常相似的问题,在这里回答:Parse crash when calling [PFFacebookUtils initializeFacebook] - semaphore_wait_trap

但是,该解决方案不再有效,因为它似乎[PFUser currentUser]已被替换[PFUser(Private) _getCurrentUserWithOptions:]并且[BFTask(Private) waitForResult:withMainThreadWarning:]卡住了。

在我的应用程序中,我将 PFUser 子类化为名为 MPLUser 的类,并覆盖了用户方法。不确定这是否与问题有关?

+ (MPLUser *)user
{
    return (MPLUser *)[PFUser user];
}

一旦开始发生这种情况,就无法启动应用程序。但是,我通常会设法在锁定开始发生之前启动该应用程序几次。它通常发生在崩溃之后...

我正在使用 pod 'ParseFacebookUtilsV4' 并将所有库更新到最新版本。

更新:

这是来自另一个线程的更多堆栈跟踪,似乎正在尝试登录:

在此处输入图像描述 在此处输入图像描述

我按以下顺序初始化 Parse 和 Facebook。如果我撤销呼叫,它会崩溃:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self initDefaults];
    [self initialiseApplicationSpecifics];
    [self setupParseWithOptions:launchOptions];
    [self enableCrashReporting];
    [self setupIAPs]; 
//etc... 
}


- (void)initialiseApplicationSpecifics
{
    [Flurry setCrashReportingEnabled:YES];
    [self registerParseSubclasses];
    [ParseCrashReporting enable];
    [Parse enableLocalDatastore];
#ifdef MPL
    [Parse setApplicationId:@"xxxyyy"
                  clientKey:@"xxxyyy"];
    [Flurry startSession:@"xxxyyy"];
#elif MGM
    [Parse setApplicationId:@"yyyxxx"
                  clientKey:@"yyyxxx"];
    [Flurry startSession:@"yyyxxx"];
#endif
}

- (void)setupParseWithOptions:(NSDictionary *)launchOptions
{
    [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
    [PFTwitterUtils initializeWithConsumerKey:@"aaaabbbb"
                               consumerSecret:@"bbbbaaaa"];
    [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
}
4

3 回答 3

2

似乎已通过解析 1.7.2 修复

根据 v1.7.2 — 2015 年 4 月 27 日

新:扩展和 WatchKit 的本地数据共享。改进了 ParseFacebookUtils 的可空性注释。
修正:logOutInBackground 块回调未在主线程上调用。已修复:对 PFSubclassing.h 使用导入时可能出现编译错误。
固定:如果通过 saveEventually 保存自动用户,则不是持久的 currentUser。
已修复:使用 ParseFacebookUtils 和 currentUser 的罕见死锁场景。
已修复:将多个对象连续固定到同一个引脚的罕见问题。
已修复:用户无法与 Facebook 链接的罕见情况。
改进了本地数据存储的性能和可靠性。性能改进。
其他小错误修复。

于 2015-04-28T14:09:43.520 回答
1

我在 Parse 1.7.1 和 FBSDK 4.0.1 上遇到了同样的问题,我向 Parse 报告了这个错误,但到目前为止还没有运气。它与本地数据存储有关。

https://developers.facebook.com/bugs/779176035499837

请在那里提供更多信息。

于 2015-04-25T16:15:02.303 回答
0

我与我的 iOS SDK 团队进行了核对,并被告知最新的 SDK 应该可以解决这个问题。可以试试更新吗?

于 2015-04-23T18:17:23.273 回答