代码之家  ›  专栏  ›  技术社区  ›  Jake

iOS崩溃符号

  •  1
  • Jake  · 技术社区  · 7 年前

    symbolicatecrash Xcode提供的工具,但它仅代表我的应用程序中的符号:

    Last Exception Backtrace:
    0   CoreFoundation                  0x185b1fd38 0x1859de000 + 1318200
    1   libobjc.A.dylib                 0x185034528 0x18502c000 + 34088
    2   AVFoundation                    0x18b3d4208 0x18b31d000 + 750088
    3   Shortcuts                       0x1004d47ec 
    
    FlashlightManager.setBrightness(brightness:) + 378860 (FlashlightManager.swift:40)
    4   Shortcuts                       0x1004af9a4 specialized FlashlightJavascriptExport.toggle() + 227748 (FlashlightJavascriptExport.swift:0)
    5   CoreFoundation                  0x185b276a0 0x1859de000 + 1349280
    6   CoreFoundation                  0x185a06820 0x1859de000 + 165920
    7   JavaScriptCore                  0x18cb80d3c 0x18c41f000 + 7740732
    8   JavaScriptCore                  0x18cb8048c 0x18c41f000 + 7738508
    9   JavaScriptCore                  0x18cb80924 0x18c41f000 + 7739684
    

    正如你所见,在 setBrightness 方法 FlashlightManager 正在导致问题。但是,我看不出这可能会导致崩溃:

    func setBrightness(brightness: Float) throws {
        guard let avDevice = self.avDevice else {
            throw FlashlightManagerExceptions.noTorch
        }
    
        try avDevice.lockForConfiguration()
        if brightness > 0 {
            try avDevice.setTorchModeOn(level: brightness)
        } else {
            avDevice.torchMode = .off
        }
        currentBrightness = brightness
        avDevice.unlockForConfiguration()
    }
    

    由于碰撞报告没有给我更多的细节,而且我在这种方法中没有看到任何明显的东西,因此我无法确定碰撞的原因。

    有什么方法可以将堆栈轨迹的其他部分从 CoreFoundation , libobjc.A.dylib AVFoundation 这样我就可以得到更多关于这次坠机的信息?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jake    7 年前

    事实证明,我在本地没有iOS 11.0.3的系统框架符号,所以 symbolicatecrash

    通过引用这个问题的答案,我发现我没有必要的符号: Atos does not symbolicate system frameworks/libraries properly

    在我的设备上安装iOS 11.0.3并将设备连接到Xcode后,iOS 11.0.3的符号会自动下载并 符号碰撞 开始处理整个崩溃日志。