在ios开发中,会经常有crash奔溃,但是只是显示一堆堆栈信息,比如使用了第三方统计信息,在第三方后台是可以查看捕捉到的crash信息,但是并不能定位到某个文件或者函数。
解决方案是:找到打包的包名,在Xcode管理里会保存有一个xcarchive文件,这是和你的版本包名需要一致,接下来使用命令行cd到该目录下
cd App名称\ 14-1-15\ 下午4.00.xcarchive/
cd 你的app名称.app.dSYM/
cd Contents/
cd Resources/
cd DWARF/
ls列出真正的文件
执行
atos -arch armv7 -o 你的app名称 0x27a7b
上面armv7是看你的设备架构来定的,可能是7s也可能是i386
地址在友盟后台是加下划线的那个地址
回车接下来就可以看到函数调用崩溃的地方了。
-[CCChooseLocationViewController currentData:] (in 你的app) (CCChooseLocationViewController.m:316)
后面显示的是行数
参考:
http://stackoverflow.com/questions/7675863/atos-cannot-get-symbols-from-dsym-of-archived-application