iOS 崩溃符号化
iOS Crash Symbolication
我正在尝试用符号表示已报告的崩溃。我有所有必需的 dsym、原始存档和几个未符号化的崩溃日志。我试图使用 Xcode 提供的 symbolicatecrash
工具完全符号化崩溃日志,但它只是符号化我的应用程序中的符号:
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
如您所见,FlashlightManager
的 setBrightness
方法中的某些内容导致了问题。但是,我看不出这可能导致崩溃的方式:
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
中符号化堆栈跟踪的其他部分,以便我可以获得有关此崩溃的更多信息?
原来我本地没有iOS11.0.3的系统框架符号,所以symbolicatecrash
无法符号化系统框架符号。
通过参考这个问题的答案,我发现我没有必要的符号:Atos does not symbolicate system frameworks/libraries properly
在我的设备上安装 iOS 11.0.3 并将我的设备连接到 Xcode 后,iOS 11.0.3 的符号会自动下载,symbolicatecrash
开始处理整个崩溃日志。
我正在尝试用符号表示已报告的崩溃。我有所有必需的 dsym、原始存档和几个未符号化的崩溃日志。我试图使用 Xcode 提供的 symbolicatecrash
工具完全符号化崩溃日志,但它只是符号化我的应用程序中的符号:
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
如您所见,FlashlightManager
的 setBrightness
方法中的某些内容导致了问题。但是,我看不出这可能导致崩溃的方式:
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
中符号化堆栈跟踪的其他部分,以便我可以获得有关此崩溃的更多信息?
原来我本地没有iOS11.0.3的系统框架符号,所以symbolicatecrash
无法符号化系统框架符号。
通过参考这个问题的答案,我发现我没有必要的符号:Atos does not symbolicate system frameworks/libraries properly
在我的设备上安装 iOS 11.0.3 并将我的设备连接到 Xcode 后,iOS 11.0.3 的符号会自动下载,symbolicatecrash
开始处理整个崩溃日志。