iOS - Xcode8的(图片格式)assets问题导致运行iOS9.2 9.3 9.x崩溃

升级Xcode8后,若项目目标版本为iOS 9.3以下,运行时可能因16位图或P3显示模式图片导致崩溃。解决方法包括:1)联系UI更换8-bit sRGB格式图片;2)手动转换图片格式。通过查找Assets.car文件内的问题图片并使用assetutil工具分析,定位到导致崩溃的图片。
摘要由CSDN通过智能技术生成

前言:

最近升级 Xcode8.0后一直担心有什么隐藏的问题,今天又被坑了一次,不知道什么原因 Xcode 运行的时候一直crash到main函数,卡在启动页,没有任何错误信息,仔细检查了自己写的东西,确认没有什么错误,在项目里面是一顿狂找,还是无果,折腾了很久,就利用 SVN 回滚,才发现是最近添加图片的造成的原因,下面给出解决方法:

6DA1D65CB694340246488599D474C77E.jpg


左图是不符合要求的图片格式,右图是符合要求的图片

针对情况:

如果你刚刚升级了Xcode8,而你的项目的Deployment Target是iOS 9.3以下,运行iOS8的时候过了几十秒后crash到main函数,出现EXC_BAD_ACCESS,或者崩溃到imageNamed:,或者每次编译运行随机崩溃到某个地方。

崩溃的原因:

在Xcode8中,如果你的图片资源文件里有16位图或者图片显示模式为P3,并且Deployment Target是iOS9.3以下的就会出现这个问题。(话说我公司的项目里面就出现了一个小按钮,导致了这次崩溃,不知道设计师是怎么弄出来的这个特殊图片…)如果你的App需要支持wide color functionality,那你就必须设置Deployment Target为iOS9.3以上。如果你的APP不需要支持wide color functionality并且你希望兼容iOS老版本,那么你需要将所有16-bit or P3 assets的图片转换为8-bit sRGB assets

定位到问题图片</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值