当我将我的应用程序置于后台时,请等待几分钟并重新激活应用程序,应用程序,通常整个手机都会冻结。当我在调试器中暂停应用程序时,我可以看到主线程正在等待信号量:
Thread 1 Queue: com.apple.main-thread (serial)
0 semaphore_wait_trap
2 _dispatch_barrier_sync_f_slow
3 -[AAEventsManager addEvent:parameters:async:]
4 -[AAEventsObserver onApplicationStateChanged:]
5 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER_
---------------------------------------------------------
23 UIApplicationMain
24 main
25 start
我的applicationWillEnterForeground没有代码,应用程序在调用applicationDidBecomeActive之前冻结。如果我添加后台计时器(进行网络连接),则当应用程序和iPhone UI冻结时,它们会在applicationWillEnterForeground之后运行,但连接始终失败。有时,应用程序几乎立即重新启动,因为前景已冻结。应用程序的CPU使用率为0%,内存使用量为25MB,能耗影响为零。
我已经测试了几款配备iOS 9.2的iPhone 6设备。
任何想法发生了什么?
答案 0 :(得分:1)
您是否使用某些版本控制? GIT?如果是,请跳回几个版本,看看第一次发生错误的提交 - 这是查找此类奇怪错误的最简单方法。
查找错误提交的最快方法是应用二进制搜索算法。我们假设你有100个提交:
答案 1 :(得分:0)
最后发现AAEventsManager属于AppAnalytics pods lib.It是一个二进制库,这就是为什么我找不到类名。删除了lib并且不再冻结。