错误 提示
malloc: * error for object 0x600000e30480: Invalid pointer dequeued from free list
* set a breakpoint in malloc_error_break to debug
malloc: * error for object 0x7fb37acf0ed0: Invalid signature for pointer dequeued from free list
* set a breakpoint in malloc_error_break to debug
升级到xcode8 后遇到这个崩溃.
原因是 图片“颜色描述文件”是否是Adobe RGB,可以打开图片 预览里看到
解决办法是, 跟换图片 用sRGB的图片替换.
但是项目里那么多图片 ,怎么找呢? 网上提供了一种方法,尝试过, 确实可行.
以下文字来源网上: http://www.jianshu.com/p/e131ae7833aa
- 运行工程后一般在Products分组下面都会有.app后缀的app包生成,对着它右键 -> Show in
Finder,然后在Finder打开的文件夹中,对着.app文件右键,按住option键,然后就可以看到『将xxx拷贝为路径名称』,我们主要是为了拷贝文件的路径。 - .打开终端,然后用cd命令进入拷贝的目录,执行以下命令找到Asset.car文件:
find . -name 'Assets.car'
- 用工具生成图片资源的属性表:
xcrun --sdk iphoneos assetutil --info ./Assets.car >/Users/hp/Desktop/bbbb.json
解释说明一下:
/path/to/a/Assets.car指第2步搜索到Asset.car文件目录。
/tmp/Assets.json指属性表保存的目录
打开Assets.json,在文件里搜索”DisplayGamut”字段为”P3”的即为要找的图片,”Name”字段就是图片资源名。
把这些有问题的图片整理出来,麻烦切图的同事切色域为sRGB的图替换掉就可以了。