S1.app提交上线之后要把打包中对应的.dSYM和二进制文件保存好,以后可以通过这两个东西追踪到app在用户使用时发生的错误,版本一定要对应好

ios友盟统计 使用 友盟统计app_ios友盟统计 使用

 

2.打开友盟的错误列表 找到一个错误,比如

ios友盟统计 使用 友盟统计app_二进制文件_02

如果错误类型是

ios友盟统计 使用 友盟统计app_xcode_03

就可以放弃了 这种异常崩溃错误原因可能很多 追踪不到

 

3.复制错误

ios友盟统计 使用 友盟统计app_git_04

黄色加后面的东西复制

ios友盟统计 使用 友盟统计app_hive_05

ios友盟统计 使用 友盟统计app_git_06

并把

ios友盟统计 使用 友盟统计app_ios友盟统计 使用_07

替换成你自己的dSYM文件名

ios友盟统计 使用 友盟统计app_ios友盟统计 使用_08

 

4.打开终端 cd到存放.dSYM和二进制的文件夹 然后把刚才复制修改完的东西粘贴上去

ios友盟统计 使用 友盟统计app_ios友盟统计 使用_09

回车

 

5.现在可以找问题了

ios友盟统计 使用 友盟统计app_git_10

可以看出

ios友盟统计 使用 友盟统计app_二进制文件_11

问题就出在这个地方的40行

ios友盟统计 使用 友盟统计app_ios友盟统计 使用_12

问题就出在这里,因为SDWebImage的版本有点老 所以在这里崩溃了,重新下一个最新的替换掉.

问题就解决了.谢谢涛哥的指导~

  我们可能会得到如下信息:

Application received signal SIGSEGV

0x1153b9 _mh_execute_header + 1131449
	5   libsystem_c.dylib                   0x32d407e3 _sigtramp + 38
	6   NxxMovie                          0x390fb _mh_execute_header + 229627
	7   CoreFoundation                      0x358931fb -[NSObject performSelector:withObject:] + 42
	8   NxxMovie                          0x175a5 _mh_execute_header + 91557 9 CoreFoundation 0x358931fb -[NSObject performSelector:withObject:] + 42 10 Foundation 0x35457747 __NSThreadPerformPerform + 350 11 CoreFoundation 0x35908ad3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14 12 CoreFoundation 0x3590829f __CFRunLoopDoSources0 + 214 13 CoreFoundation 0x35907045 __CFRunLoopRun + 652 14 CoreFoundation 0x3588a4a5 CFRunLoopRunSpecific + 300 15 CoreFoundation 0x3588a36d CFRunLoopRunInMode + 104 16 GraphicsServices 0x37526439 GSEventRunModal + 136 17 UIKit 0x33396cd5 UIApplicationMain + 1080 18 NxxMovie 0x31b7 _mh_execute_header + 8631 19 NxxMovie 0x3150 _mh_execute_header + 8528 ) dSYM UUID: FF67F6D3-C71C-3A7D-9C4C-C4FFBF8EEEB9 CPU Type: armv7 Slide Address: 0x00001000 Binary Image: NxxMovie Base Address: 0x000f4000

由于这类的崩溃信息通常难以重现, 没有任何的重现步骤,所以我们得找到发布该版本时的原始代码,可能会需要回朔到以前的SVN或者Git版本。

然后找到当时上传代码时使用的DYSM文件,这文件通常在.xcarchive文件中。 右键该文件, 然后通过Terminal工具cd到

cd /Users/heqin/Downloads/xxxMovie2.0.0_apps_0605_2104\ 13-6-5\ 下午9.02.xcarchive/dSYMs/xxxMovie.app.dSYM/Contents/Resources/DWARF

注意:1。对于成功生成archvie的项目, 在这个archive的包中, 是可以通过显示包内容, 看到DSYMs文件夹和一个products文件夹, 继续显示DSYMs文件夹下,可以看到一个xxx.app.DSYM文件,继续对它显示包内容,可以看到Contents/Resources /DWARF/xxxx文件, 这个文件是编译后的二进制文件,通过它可以进行反编译,从而找到二进制对应的源码位置。

2。 在xcode中,archive成功后, 会在Organizer界面中的Archives下, 可以看到所有的archive文件, 右键Show in Finder可以找到这个文件。


然后执行atos -arch armv7 -o xxxMovie 0x1153b9. 就可以看到这处内存地址反编译回来的源码行。

可以有效地帮助分析原因。