作者:等待那个心中的人_212 | 来源:互联网 | 2023-08-15 08:30
前提:保留打包发布时的myapp.xcarchive文件(注:在xcode-window-Organizer-Archives中可以找到,通过命令打包需要自己当时备份下这个文件)1
前提:保留打包发布时的 myapp.xcarchive文件(注:在xcode-window-Organizer-Archives 中可以找到,通过命令打包需要自己当时备份下这个文件)
1、从myapp.xcarchive中得到myapp.app.dSYM 和myapp 两个文件并放到同一个文件夹中
2、找到一条该版本app 在友盟bug统计中崩溃日志的,在其中可以找到崩溃时的地址信息如:0x1001ed424
友盟统计的崩溃log
Application received signal SIGSEGV
(null)
(
0 CoreFoundation 0x000000018400e5b8 + 160
1 libobjc.A.dylib 0x00000001947600e4 objc_exception_throw + 60
2 CoreFoundation 0x000000018400e4dc + 0
3 myapp 0x1005d0fdc myapp + 6098908
4 libsystem_platform.dylib 0x0000000194f7c94c _sigtramp + 52
5 myapp 0x1001ed424 myapp + 2020388
6 myapp 0x1001ed240 myapp + 2019904
7 myapp 0x1001ed364 myapp + 2020196
8 myapp 0x1001e6654 myapp + 1992276
9 myapp 0x10024a85c myapp + 2402396
10 libdispatch.dylib 0x0000000194da53ac + 24
11 libdispatch.dylib 0x0000000194da536c + 16
12 libdispatch.dylib 0x0000000194da9980 _dispatch_main_queue_callback_4CF + 932
13 CoreFoundation 0x0000000183fc5fa4 + 12
14 CoreFoundation 0x0000000183fc404c + 1492
15 CoreFoundation 0x0000000183ef10a4 CFRunLoopRunSpecific + 396
16 GraphicsServices 0x000000018d0935a4 GSEventRunModal + 168
17 UIKit 0x00000001888263c0 UIApplicationMain + 1488
18 myapp 0x10029b5dc myapp + 2733532
19 libdyld.dylib 0x0000000194dcea08 + 4
)
dSYM UUID: BF6D8B68-25AD-3D83-9EFA-2EC4662771CC
CPU Type: arm64
Slide Address: 0x0000000100000000
Binary Image: myapp
Base Address: 0x0000000100064000
3、打开终端,切换到该文件夹,运行下面命令 终端中将显示错误出现的的详细信息
xcrun atos -arch arm64 -o myapp.app/myapp 0x1001ed424
或者
dwarfdump --lookup 0x1001ed424 -arch arm64 myapp.app.dSYM
注:对一些特殊复杂的bug引起的崩溃,通过此命令的分析,也得不到什么有用的错误信息提示。
关于dSYM
dSYM 在打包的过程中生成的保存app 16 进制函数地址映射信息的中转文件,通过出错的函数地址去查询 dSYM 文件中程序对应的函数名和文件名,从而得到错误详细信息。
iOS 友盟统计的bug分析