美文网首页
上传App Store 后在iOS 9上崩溃,其他系统没问题

上传App Store 后在iOS 9上崩溃,其他系统没问题

作者: 汪小喵 | 来源:发表于2017-12-04 15:47 被阅读400次

    http://www.jianshu.com/p/b13e1e441116

    截止到2017年9月,iOS9的使用率只有9%,现在iOS11已经发布了一段时间,然而这不到9%的用户却给我带来了新问题ᕙ(⇀‸↼‵‵)ᕗ
    通过各种渠道找到一部系统为iOS9的6sP ,然后开始了测试,连接电脑真机测试,无论怎么操作都没有崩溃…然后打包上传蒲公英测试,同样没有崩溃。下载模拟器再测试,没有崩溃。但是在App Store 下载的就是点几下就闪退,甚至打开就闪退。
    接入了友盟的错误统计,解析崩溃日志,发现崩溃的地方都是main.m.
    没办法了,各方查资料,

    如果你的图片资源文件里有16位图或者图片显示模式为P3,并且Deployment Target是iOS9.3以下的就会出现这个问题。(”DisplayGamut” : “P3”, “Encoding” : “ARGB-16″)

    是不是图片的问题呢,然后照下面的方法找到了这样两张图片 "DisplayGamut" : "P3"

    可能会是吧,也只能排除这种可能试一下了。

    进入正题
    图片问题怎么查找解决?
    1.首先要将项目打包,得到 .ipa 文件。
    2.将得到的.ipa 文件的后缀改为 .zip 。
    3.解压 .zip,得到一个文件夹 Payload,里面包含另一个文件。

    Payload
    4.打开终端 ,切换到Payload 里面的文件,cd 然后把那个文件拖到终端里 回车。
    然后就会看到终端里出现了下面这句话:
    cd path/to/Payload/your.app
    5.用find 命令 定位Assets.car 文件:终端输入 find . -name 'Assets.car'
    然后应该会看到:
    ./Assets.car
    6.对每个 Assets.car 执行以下命令 : sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json 。
    /path/to/a/Assets.car 替换为Assets.car文件的路径, 如果你终端的位置依然在bundle下则直接执行: xcrun --sdk iphoneos assetutil --info ./Assets.car >/tmp/Assets.json
    7.执行完上面的命令后就要打开Assets.json ,执行:open /tmp/Assets.json。
    然后就打开了一个新文件,在里面查找 ”DisplayGamut” : “P3”, “Encoding” : “ARGB-16″ 这些关键字,如果发现有这些,那么恭喜你,可能找到崩溃原因了。(UI的锅也只能你来背了,反正早就是背锅侠了)

    修改图片的方法:
    1.让UI重新切图给你。(这个方法最简单,还有可能可以甩锅)
    2.自己修改:


    对图片单击右键,选择实用工具
    修改指派描述文件

    这张图片就修改好了。

    相关文章

      网友评论

          本文标题:上传App Store 后在iOS 9上崩溃,其他系统没问题

          本文链接:https://www.haomeiwen.com/subject/yrenvxtx.html