zoukankan      html  css  js  c++  java
  • iOS 线上版本图片资源格式的问题导致的闪退


    链接:https://www.jianshu.com/p/6492779cb89e
    來源:简书

      导致这种问题的原因是:在 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. 这时候就变成了一个.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 /Users/feng/Desktop/Payload/cocc-passengerservice-ios.app/Assets.car> ~/Desktop/Assets.json

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

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



    执行完上述的命令就能看到下边的界面了

    这个是正常的

    看下边的这个图片就有问题了

    找到类似于上边的图片 都是有问题的 然后去你的xcode中 找到这些图片 我是直接删除了然后让UI在做图







  • 相关阅读:
    poj 2763 Housewife Wind
    hdu 3966 Aragorn's Story
    poj 1655 Balancing Act 求树的重心
    有上下界的网络流问题
    URAL 1277 Cops and Thieves 最小割 无向图点带权点连通度
    ZOJ 2532 Internship 网络流求关键边
    ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
    SGU 438 The Glorious Karlutka River =) 拆点+动态流+最大流
    怎么样仿写已知网址的网页?
    5-10 公路村村通 (30分)
  • 原文地址:https://www.cnblogs.com/fengmin/p/8482083.html
Copyright © 2011-2022 走看看