作者:乾坤醉心尘 链接:http://www.jianshu.com/p/4bc0c5b3b597 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。是否有人跟我一样,使用iOS系统9.2.1的手机,真机调试情况下,app不会出现任何崩溃,运行的顺溜顺溜的。然而,打包发布到App Store上面去的时候,用手机从App Store上面下载,运行,则出现各种崩溃,例如未运行完App的启动页就崩溃;进入之后等十几秒就崩溃;随便点击几下就崩溃等等。
我也为这个问题苦恼了很久,始终没有找到解决办法。第三方框架也全部更新,用友盟或者本身的crash捕捉定位也定位不到,永远都报这种错误。
后来终于在同行的帖子中也看到这种问题,所以,以下是解决办法:
原理:在 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
注:这里的/path/to/a/Assets.car指的是Assets.car的路径,不要直接复制!!!使用上一步find命令的结果。
7. 打开上一步生成的 /tmp/Assets.json 文件并查找包含有 “DisplayGamut": “P3” 或者相关的内容. 这段json的"Name"字段对应的值就是16位或显示的γ值为P3的资源文件名.
以下是完成图片,再提醒,注意这个info /path/to/a/Assets.car,按照我的终端命令来就可以的了。希望各位开发者能够轻松解决这个问题。
关于iOS 9.2.1 从App Store下载出现不规则崩溃的问题
最新推荐文章于 2018-08-21 08:47:41 发布
针对iOS App在AppStore上出现的各种崩溃问题,本文提供了一种解决方案。问题出现在使用iOS9.3以下版本,并且资源文件中含有16位图或显示模式为'P3'的情况下。文章详细介绍了如何通过修改资源文件的位深和显示模式来解决问题。
摘要由CSDN通过智能技术生成