【问题标题】:Parse crash when calling [PFFacebookUtils initializeFacebook] - semaphore_wait_trap调用 [PFFacebookUtils initializeFacebook] 时解析崩溃 - semaphore_wait_trap
【发布时间】:2015-04-26 09:18:21
【问题描述】:

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

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

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

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

有人知道会发生什么吗?

【问题讨论】:

标签: ios objective-c parse-platform semaphore pfuser


【解决方案1】:

我看到了同样的问题,发现更改这个初始化序列的顺序(我正在使用 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)

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

【讨论】:

  • 这似乎可以解决问题……不知道为什么,但至少现在它又可以工作了。有点担心 api 的变化会破坏实时应用程序......
  • 嗯,它又开始发生了——间歇性地,在运行我的应用程序几次之后。如果我清理构建和删除应用程序,则工作正常,但在几次运行后再次开始发生。尝试改组方法调用,但似乎没有什么区别......如果我注释掉启用本地数据存储,事情就会运行,但是我当然无法访问我的本地数据存储。更新了 pod,但仍然出现。这可能是 Parse 的后端更改吗?
  • 您更新到 facebook SDK 4.0.1 和最新的 Parse 库了吗?当我这样做时(今天早些时候),我最终将初始化调用更改为 PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)。如果你使用 cocoapods,还要注意你需要 ParseFacebookUtilsV4...
  • 以上方法我都试过了,是的。这很有趣,因为它不会立即发生,通常只是在运行几次之后......
  • 在 Obj-C 中看到同样的结果
【解决方案2】:

似乎已通过 parse 1.7.2 修复

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

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

【讨论】:

  • 太好了,希望这能解决问题!如果您在此处发布答案,我可以将其标记为已接受,因为上述问题略有不同:stackoverflow.com/questions/29695690/…
  • @Smikey 听起来不错。我想你会让我超过 1000 次代表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多