ios开发工程中不规范图片(的"DisplayGamut" : "P3"),引起的崩溃

通过生产日志或集成到本工程的第三方可以看到图片引起的崩溃,有的是asset中个图片在引入asset后改名称了,有的是因为图片不规范,不规范的图片引起的崩溃可能在测试时不容易测出来,但是在生产环境大量点击情况下,非常明显。不规范的图片大多是p3文件,本文教你如何查找到p3图片

1.打开工程所在的文件夹 command + f 搜索所有工程中的所有格式的图片(例如png、jpg、gif、jpeg)(bundle及asset),以.png图片为例。

2.新建一个工程

将我们工程中的所有图片拉入新工程中的asset中

目的是将我们工程中所有的图片(在bundle及asset中的)全部放置于asset中

3.将新工程打包 Product -> Archive 打包,将以下文件拖出来

4.终端cd 到此yhjk.app

5.终端执行 find . -name 'Assets.car' 命令

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

sudo xcrun --sdk iphoneos assetutil --info Assets.car> /Users/yangyangzi/Desktop/Payload/Assets.json

红色即为yhjk.app路径

(如果输入上述命令报包含switch 及 sudo xcode-select -- /Applications/Xcode.app的错则执行如下命令:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

7.则yhjk所在的自定义文件夹下出现了Assets.json文件,打开此文件,即可看见图片是否是"DisplayGamut" : "P3",图片

一般删掉或找专业UI重新作图即可,p3图片来源不规范,例如自己截的图或者非专业UI切得图,注意,一定要用官方给的图。


以下是某p3图片的Asset.json文件

 {
    "AssetType" : "Image",
    "BitsPerComponent" : 16,
    "ColorModel" : "RGB",
    "Colorspace" : "extended srgb",
    "Compression" : "lzfse",
    "DisplayGamut" : "P3",
    "Encoding" : "ARGB-16",
    "Idiom" : "universal",
    "Image Type" : "kCoreThemeOnePartScale",
    "Name" : "bb",
    "Opaque" : false,
    "PixelHeight" : 1300,
    "PixelWidth" : 732,
    "RenditionName" : "bb.png",
    "Scale" : 1,
    "SizeOnDisk" : 522368
  },










猜你喜欢

转载自blog.csdn.net/denggun12345/article/details/80236008
今日推荐