因广色域图标造成iOS 9.3 以下系统从App Store下载出现闪退的问题

问题显现

前一段时间我们的App 遭到个别客户反馈,点开过一会儿就卡住然后闪退,根本没法使用,客户很生气。但我们自己的手机使用是正常的,并没有模拟出来该问题,一时半会儿也不知道什么原因,并且大多数客户使用都是正常的。 

我们获悉有问题的几个客户手机都是iOS 9系统,手头也没有iOS 9  的真机可测试,使用iOS 9 的模拟器测试一切正常。其中一个有问题的客户,很配合地提供手机的 UDID 号给我们,我们专门为他提供了Adhoc 的版本,他反馈可以正常使用。

一周时间过去,iOS 9 用户量非常低,所以这个问题没有太在意。直到一个很恼火执拗不愿升级手机系统的“更年期”女客户一直反馈没法使用,我和同事决定去客户公司现场查找并解决这个问题。

问题现象

来到客户公司,事先说明我们需要使用她的手机连接电脑进行调试,我们保证仅点击访问我们公司的 App,不会打开其他应用程序,不会访问个人隐私数据。就这样她还不太放心地坐在旁边盯着我们,还问我们大概需要多长时间,我说:我们还没确定问题,快则半小时,慢则两小时也说不准。她忙其他事情,还喊另一个女同事过来看着我们,搞得我们放不开手脚。

连上客户的iPhone 6s (iOS 9.2 系统),Xcode 跑一遍运行安装之后打开却是正常的,并没有闪退。此时内心忐忑,无法定位到问题便更无从下手。我又想了一下,把刚跑完的程序删掉,又从App Store 重新下载,再看看线上的闪退到底是什么现象。

模拟几遍之后发现:

1. 安装之后首次打开有时候在登录页面就卡住,没法输入账号密码,过了几秒钟就闪退;

2. 首次打开有时候登录页面能输入账号密码,但刚进入到首页,过十几秒钟就卡住,然后闪退;

3. 一旦闪退之后,再点击就无法启动程序,直接闪退回到桌面;

4. 手机系统内无法查看到崩溃日志;

5. 真机调试打包的正常,模拟器也正常,Adhoc版本正常,唯有App Store 下载的会崩溃,并且是在 iOS 9 系统上。

问题根源

究竟是什么问题这么奇怪,造成个别用户点开App 就闪退,而且是 iOS 9 系统,确切地说是 iOS 9.2 及以下的系统会出现闪退,并且是从App Store 下载后运行出现各种崩溃,比如在登录页面就崩溃,或者能进入到首页然后过几秒就崩溃。

根据上面的问题现象搜索查找了一下,想不到竟有许多开发者也遇到了这样诡异的问题。原来是项目中增加了一些 P3 广色域图标造成的资源文件加载时产生崩溃,根源是 iOS 9.3 之下的系统不支持广色域图标。回想了一下,原来是我上两个版本增加一个功能时,自己从 iconfont.cn 下载了几个图标导入到项目中所致。

终于找到问题,我们给客户简单做了解释,我承认是自己导入的不合格图标造成,并说明下个版本会修复,重新用 Xcode 给她运行一个版本保证她当前可以正常使用,客户很高兴,这时才想起给我们俩每人拿了一听冰可乐,算是奖励吧。我们如释重负,告辞并返回公司赶紧修复这几个图标并重新发布版本。

问题解决

解决办法就是查找出当前项目中为16-bit 或者P3 广色域的图标,并将它们替换为8-bit 的sRGB 图标,可以找美工重新提供图标,或者自己动手用系统的图片编辑器—工具--指派描述文件为Apple RGB、或者 PhotoShop 软件—导出--存储为web 所用格式,选择Png-8, 导出为普通的RGB 描述文件图标。

如何查找广色域图标:

1. 将项目打包后,找到ipa 文件(ipa 本身是种压缩文件),右键选择解压缩工具打开;

2. 解压缩后有个Payload 文件夹,文件夹下面是你的 App,选择右键显示包内容;

3. 可以看到里面全部是按字母排序的 App 所用的资源文件,bundle 、png、gif、js 等文件。

3. 按字母顺序找到 “Assets.car”文件,该文件就是汇总所有资源文件信息的一个资源汇总文件。当然也可以cd 到 你的 App 资源所在文件夹后,用 find .-name ‘Assets.car’ 命令找到该文件。

4. 使用 assetutil 命令工具可以打开该 Assets.car 文件,并将所有的 assets 资源信息转化输出到一个指定的 json 文件中,方便我们检索哪些图标是16-bit 或者 P3 图标。

sudo xcrun --sdk iphoneos assetutil --info  Assets.car的绝对路径> 在桌面上或者其他文件夹下新建一个以 .json 为后缀的文件 (如AssetsInfo.json) 的绝对路径

5. 打开这个输出的 AssetsInfo.json 文件,搜索查找包含有 “DisplayGamut": “P3”的资源文件,那么该文件就是16-bit 或者 p3 图标。

问题扩展

关于颜色色彩配置,什么是广色域,请查看这篇文章:PS中的RGB色彩配置高手都知道!

WWDC 2016 有一个专门讲广色域的视频,有兴趣可以看看。

最后,希望大家有所收获,都能顺利解决问题!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容