CloudKit
中的Production Environment
数据集略大于Development
,可能存在其他奇特的差异。
在生产模式下使用我的应用程序时有一个讨厌的deadlock。是否可以以任何方式调试客户端?或者我应该尽可能多地记录并发送出去?
这是一个线程问题,因此如果不检查Xcode中的线程,它实际上是做任何事情。任何的想法?我正在将Core Data用于本地存储。
答案 0 :(得分:5)
答案 1 :(得分:0)
我建议使用崩溃报告服务。虽然有一些选择,但我和Crashlytics合作,我对他们提供的报告非常满意,总是帮助我修复生产中的错误。
答案 2 :(得分:0)
当应用程序进入后台时,某些时候它会被iOS杀死,因为你的线程没有回复-applicationDidEnterBackground
,然后你将获得所有线程的回溯
如果你想要一个更好的机会来触发kill(如果锁定的线程不是主线程),你可以在工作线程中获取后台任务(- beginBackgroundTaskWithExpirationHandler:
):如果它们在某些时候被锁定他们永远不会释放后台任务,他们会触发杀戮。
现在只需等待iOS调度程序杀死你的应用程序并抓住堆栈跟踪。在那里,您应该能够通过查看所有线程的回溯来找到罪魁祸首,并确定哪些被锁定在互斥锁()函数中。
我打赌你甚至不需要为此做出符号化。