调用 [PFFFacebookUtils initializeFacebook] 时解析崩溃 - semaphore_wait_trap

Parse crash when calling [PFFacebookUtils initializeFacebook] - semaphore_wait_trap

自从最新的 Parse 版本 (v1.6.3) 以来,我的应用程序在启动时卡住了,它命中的最后一个断点是 [PFFacebookUtils initializeFacebook]; 如果我按下暂停并查看调试器,堆栈跟踪看起来像这样:

我按照建议打电话给 [PFFacebookUtils initializeFacebook] - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

通过谷歌搜索 semaphore_wait_trap 问题,它似乎与 Core Data 中的后台线程冲突(?)有关。但我已经尝试注释掉我所有的后台 Parse 查询,但它仍然会发生。

我尝试更新 pods(顺便说一下,这发生在更新之前)。我还可以 运行 从干净安装的应用程序,直到我登录到 Facebook,此时每次我尝试启动时都会发生崩溃。 PFUser 在查询时似乎返回正常。我还清除了我的整个数据库,但没有任何区别。

有人知道会发生什么吗?

我看到了同样的问题,发现改变这个初始化序列的顺序(我正在使用 swift)让我过去了(特别是注释掉本地数据存储也解除了它):

这被抓到了 semaphore_wait_trap:

// Parse integration initialization
Parse.enableLocalDatastore()
Parse.setApplicationId("<my app id>", clientKey: "<my client key>")
PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
PFFacebookUtils.initializeFacebook()

这不是:

// Parse integration initialization
Parse.enableLocalDatastore()
Parse.setApplicationId("<my app id>", clientKey: "<my client key>")
PFFacebookUtils.initializeFacebook()
PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)

不确定根本问题,但希望对您有所帮助。

似乎已通过解析 1.7.2 修复

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

New: Local Data Sharing for Extensions and WatchKit. Improved nullability annotations for ParseFacebookUtils.
Fixed: logOutInBackground with block callback not called on main thread. Fixed: Potential compilation error with using imports for PFSubclassing.h.
Fixed: Not persistent currentUser if saving automatic user via saveEventually.
Fixed: Rare deadlock scenario with using ParseFacebookUtils and currentUser.
Fixed: Rare issue with pinning multiple objects in a row to the same pin.
Fixed: Rare scenario when user could be not linked with Facebook.
Improved performance and reliability of Local Datastore. Performance improvements.
Other small bug fixes.