我尝试手动符号化崩溃日志,因为Xcode 7不会为我这样做。然而,我得到了这样的结果:
这是什么意思,我能用这个做什么?我也用过atos,它只是给了我相同的地址!我确信我也有正确的dSYM,。app和log。谢谢你!
4smxwvx51#
当你在崩溃日志中看到函数名的__hidden_时,这意味着你在从归档文件中导出ipa时启用了位代码。为了能够符号化崩溃日志,你应该使用归档文件中的模块Map文件:
以下是您需要在终端中运行的命令:dsymutil --符号Map路径到BCSYMBOLMAPS目录路径到DSYM所有符号Map文件。在此命令之后,您可以使用atos命令,就像您已经尝试过的那样:dSYM --查找您查找地址
tktrz96b2#
要用符号表示崩溃日志,您需要XCArive。在xcarchive中,我们关注两件事:
dwarfdump --uuid MyApp,xcarchive/dSYMs/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
输出:
UUID: B63B409F-FA67-334C-BDC0-28AE2BFD488A (arm64) MyApp.xcarchive/dSYMs/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
使用dsymutil工具解析dSYM文件中的模糊符号。使用上面的符号文件:
dsymutil -symbol-map MyApp.xcarchive/MyApp.xcarchive/BCSymbolMaps/ B63B409F-FA67-334C-BDC0-28AE2BFD488A.bcsymbolmap MyApp.xcarchive/dSYMs/MyApp.app.dSYM
这个命令会在原地符号化dSYM文件。现在,如果我们在XCode中打开崩溃日志,它将能够正确地解析符号。请注意,XCode可能需要一分钟来完成这个操作,所以请耐心等待。符号将在完成后自动出现。如果崩溃日志在被符号化之前已经在XCode中打开,则可能需要从XCode请求重新符号化。要执行此操作,请在设备日志窗口中右键单击崩溃日志,然后从上下文菜单中选择重新符号化日志。
2条答案
按热度按时间4smxwvx51#
当你在崩溃日志中看到函数名的__hidden_时,这意味着你在从归档文件中导出ipa时启用了位代码。为了能够符号化崩溃日志,你应该使用归档文件中的模块Map文件:
以下是您需要在终端中运行的命令:
dsymutil --符号Map路径到BCSYMBOLMAPS目录路径到DSYM
所有符号Map文件。在此命令之后,您可以使用atos命令,就像您已经尝试过的那样:
dSYM --查找您查找地址
tktrz96b2#
要用符号表示崩溃日志,您需要XCArive。在xcarchive中,我们关注两件事:
如果归档文件包含框架,则它可能包含多个dSYM和BCSymbolMap文件。我们必须为二进制文件标识正确的BCSymbolMap文件。为此,我们需要使用dwarfdump工具提取构建的构建UUID。
输出:
使用dsymutil工具解析dSYM文件中的模糊符号。使用上面的符号文件:
这个命令会在原地符号化dSYM文件。现在,如果我们在XCode中打开崩溃日志,它将能够正确地解析符号。请注意,XCode可能需要一分钟来完成这个操作,所以请耐心等待。符号将在完成后自动出现。
如果崩溃日志在被符号化之前已经在XCode中打开,则可能需要从XCode请求重新符号化。要执行此操作,请在设备日志窗口中右键单击崩溃日志,然后从上下文菜单中选择重新符号化日志。