Xcode遇到了诡异开发问题

来源:互联网 发布:天狮多种vb片功效 编辑:程序博客网 时间:2024/05/25 18:09

事情是这样, 从开发到测试, 开发的过程中没有出现bug, 但是测试的时候固定重现了bug, 而bug的crash log又不明显, 只是指向了box2d的update中

很怪异的问题, 我这里不报错, 对方那里报错, 用排除法吧
1.中转传输导致二进制错误
2.设备差异错误
3.debug和release差异错误

考虑第一个问题应该问题不会太大, 通过各种方式传输, 都会出现一样的错误, 于是直接到我机器上来调试, 看看是不是设备差异问题, 于是我发现对方手机在本项目中跑debug并不会出现之前的固定崩溃错误

于是我试了一下, 发现确实release版本才会崩溃, 就算是手头的设备也一样, 于是我在认证的部分release也发不成debug, 果不其然还是崩溃了

知道怎么回事就可以去详细的调节了

现在教大家一个在debug环境也能调试出release的bug的方法:

  • 配置运行时编译release版本
    • 这里写图片描述
    • 这里写图片描述
  • 证书部分从automatic改为手动选择, release选择使用dev证书
    • 这里写图片描述

这时候debug运行就会抛出release一样的错误, 并且打断点

原因也清晰了

这里吐槽一下box2d错误问题
最大的问题在于userdata这里 , userdata对应的是 void* 泛指针, 存的时候无所谓, 但是取的时候是无法进行判断的, 也无法使用dynamic来处理, 只能强转类型, 也许是debug下c++的内存有保护机制, 没有崩溃掉, 在release下彻底垮塌

下次会注意userdata下只存储固定一类对象或者基类, 但是这个写法真的好么, 虽然效率很高, 但是出错总是在这节骨眼上

0 0
原创粉丝点击