今天被一个巨巨巨低级的bug搞了一天,最后发现原因有点想撞墙!
bug情景:针对所开发的界面,真机调试没问题,当打Release包给测试测的时候已进入到该页面就Crash了。。。
由于没遇到过这种情况,一头雾水不知道怎么用Xcode定位崩溃的代码,但是做了如下尝试:
1)用Xcode查看真机的Crash日志,但并没有找出奔溃文件位置,但看到有一些友盟的类UmengSignalHandler
我们App里集成有友盟,友盟也统计崩溃,但并没有用。。。
2)在崩溃统计Crashlytics
中找到对应的编译版本发现了崩溃的类文件!! 但是我希望是能知道具体的崩溃代码
知道崩溃文件后,多次对可能出现Crash的地方进行修改(说实在我看了N遍原代码, 都不觉得不应该会崩溃),打包测试,看清楚!我多次打包测试!打包的过程是漫长的。。。我现在才想起当时的我是多么的蠢,哈哈哈,下面👇重点来啦
解决办法:
在程序调试的过程中, Xcode 默认的情况是 Debug ,修改成 Release 情景下测试.
Edit Scheme ---> info --->Build Configuration 选择 Release 进行测试;
最后直接定位到了Crash的代码上!仔细一看,疯了,我把UIColor
对象定义成了assign
!!!
建议 : 在程序开发完成以后,建议在测试的时候 把 Debug 和 Release 两个版本都测试一下, 再打包。在提测的时候以 Release 测试的情况为准. 因为 Release 状态下测试的情况,是用户使用的真是情景.