>所有的崩溃都来自某种iPad设备,这可能是也可能不是巧合.
>我可以从事件日志中看出,不同用户在不同的屏幕上出现同样的崩溃,因此崩溃可能在AppDelegate类中的某个地方,但我不确定只会偶尔发生这种崩溃会出现什么样的问题.
>崩溃跟踪中唯一一点,我认为是我编写的东西是主要的(AppDelegate.swift:15)但是我的AppDelegate文件中的第五行只是AppDelegate类声明,如下所示:
class AppDelegate:UIResponder,UIApplicationDelegate {
所以我不确定这部分会出现什么问题.
如果您认为可能与崩溃有关的任何具体信息,请告诉我,我会尽力提供.
崩溃追踪:
Exception name: EXC_SOFTWARE / UNCAUGHT_NS_EXCEPTION 1 CoreFoundation __exceptionPreprocess + 1224112 2 libobjc.A.dylib objc_exception_throw + 32636 3 UIKit -[UIPopoverPresentationController presentationTransitionWillBegin] + 9835108 4 UIKit __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 3628972 5 UIKit __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 3621060 6 UIKit _runAfterCACommitDeferredBlocks + 2912452 7 UIKit _cleanUpAfterCAFlushAndRunDeferredBlocks + 2968188 8 UIKit _afterCACommitHandler + 26016 9 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 919332 10 CoreFoundation __CFRunLoopDoObservers + 910536 11 CoreFoundation __CFRunLoopRun + 911608 12 CoreFoundation CFRunLoopRunSpecific + 35916 13 GraphicsServices GSEventRunModal + 49284 14 UIKit UIApplicationMain + 516228 15 Poker main (AppDelegate.swift:15) 16 libdyld.dylib start + 10420
@R_502_323@
正如有人在评论中建议的那样,AppDelegate只是接近引起问题的调用链的根.当系统尝试执行_initViewHierarchyForPresentationSuperview时,问题会在该链中一直发生.
当然,您对导致问题的代码行感兴趣.这些可能介于与UIKit相关的报警线之间.我不知道如何直接使用给定的堆栈跟踪来找到导致问题的(或我的)代码的根.
但是,我知道如何更接近这些界限.我有一个意想不到的NSException,在Firebase Crash reporting中出现了一个与你的类似的神秘调用堆栈,并且如上所示:
通过跟随instructions from Firebase和相当多的研究或研究如何获得与发生问题的应用程序版本相关的dSYMS符号文件(我正在使用Bitcode,这使事情变得复杂;我最终进入iTunes Connect和在应用程序的“活动”部分中下载dSYMS,我设法上传了正确的符号文件. (在本地计算机上执行mdfind“com_apple_xcode_dsym_uuids == *”,以查看是否已经具有所需的UUID标识符号文件.)
下次出现问题时(我刚从Firebase收到了相应的电子邮件),我看到了这个:
我现在唯一的问题是:似乎导致问题的代码非常简单,并且不会在本地测试中引起任何问题.它只是显示一些静态行数的文本视图,我可以手动点击并验证.
我正在尝试将代码包装在一个do {…} catch let error {…}中,以查看是否 – 在未来的应用程序版本中尚未上传 – 我可以捕获它的内部错误并报告错误消息以及Firebase错误报告的其他一些细节.