0. 假设我们的程序名叫 XXXX, 内置了第三方crash报告的工具(或通过apple的 crash report机制),上架后的程序crash了能及时拿到crash report ,且app上架时通过xcode生成的archive包没有被删掉。
1. 拿到crash report, 查看crash线程的调用堆栈,找出直接跟我们程序相关的函数地址,如下图 标红部分,其他地址皆为系统库中的函数。则第 36个函数是我们需要定位出函数名称的crash函数,其基址为0x100262000,偏移值为2491306.
......
34 AppKit 0x00007fff8f585374 __35-[NSApplication runModalForWindow:]_block_invoke + 64 35 AppKit 0x00007fff8f3a2b98 -[NSApplication runModalForWindow:] + 137 36 XXXX 0x00000001004c23aa 0x100262000 + 2491306