闲来无事写文字之一进app就卡在启动页面不动了的原因

问题描述:

该病症发生在iOS9.2.1设备上,一进入app就卡在启动页面(线上环境的,即通过审核的)
某天一个销售小伙跑过来说自己线上的下来就卡住。
岁分析半天,魔道理啊;最后发现病因还是xcode的锅,我说可能,说错无不负责的。

在 Xcode 8 中,当你资源文件中[含有16位图]或者[图片显示模式γ值为'P3']且iOS targets设定为iOS 9.3以下就会出现这个问题.
 如果你的app需要支持广色域显示的话,
那你必须得把target设置成iOS 9.3+,
相反,如果你的app不需要支持广色域且你想兼容 iOS 9.3 之前的项目,
你就得把所有的16位的或者显示模式为'P3'图片全都替换成8位模式的SRGB颜色的图片。

如何解决:

1.导出项目的 ipa 文件

2.定位到该ipa文件修改后缀名.ipa 为 .zip.

3. 解压该 .zip 文件. 解压后的目录里面会有一个包含着你的 app bundle 文件的 Payload 文件夹.

4. 打开终端病切换到你的app的Payload文件夹下的 .app bundle 文件夹内,形式如下:

cd path/to/Payload/your.app

5. 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:

find . -name 'Assets.car'

6. 使用 assetutil 命令找到任何包含着 16-bit or P3 的资源文件, 对每个 Assets.car 之行以下命令 :

sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json
7.  打开上一步生成的 /tmp/Assets.json 文件并查找包含有 “DisplayGamut": “P3” 或者相关的内容.
  这段json的"Name"字段对应的值就是16位或显示的γ值为P3的资源文件名.

注:这里的/path/to/a/Assets.car 指的是Assets.car的路径,不要直接复制!!!使用上一步find命令的结果。

完事,有卡在启动页面的不妨试试,保证治不死,活不活我就不知了,多花点时间理财,程序员有个鸡毛的钱途,整天坐着撸码,生活能性福吗,持久力行吗,等中年望A()C,空流泪吗?好好珍惜生活吧。就是这么回事

你可能感兴趣的:(闲来无事写文字之一进app就卡在启动页面不动了的原因)