所以我创建了一个有四个位置的资产目录:两个用于iPhone,两个用于iPad.现在我把我的图像拖到相应的位置.
我的问题:假设我在iPhone @ 2x和iPad @ 1x上使用相同的图像.但Xcode会创建图像的副本,尽管已经存在完全相同的图像.
所以我试着通过这个答案手动解决这个问题.我打开.imageset文件夹并在Contents.json文件中编辑"filename",如下所示:(我还删除了文件夹中的重复图像.)
{ "images" : [ { "idiom" : "iphone", "scale" : "1x" "filename" : "myImage@1x.png" }, { "idiom" : "iphone", "scale" : "2x", "filename" : "myImage@2x.png" }, { "idiom" : "ipad", "scale" : "1x", "filename" : "myImage@2x.png" }, { "idiom" : "ipad", "scale" : "2x", "filename" : "myImage@4x.png" } ], "info" : { "version" : 1, "author" : "xcode" } }
在构建之后,我查看.app文件和Assets.car文件,其中包含Xcode资产目录.
Assets.car文件的文件大小似乎比我预期的大.好像我删除的重复图像在构建过程中重新添加.
要查看是否为真,我将Contents.json中的每个"文件名"更改为我的@ 4x图像:
{ "images" : [ { "idiom" : "iphone", "scale" : "1x" "filename" : "myImage@4x.png" }, { "idiom" : "iphone", "scale" : "2x", "filename" : "myImage@4x.png" }, { "idiom" : "ipad", "scale" : "1x", "filename" : "myImage@4x.png" }, { "idiom" : "ipad", "scale" : "2x", "filename" : "myImage@4x.png" } ], "info" : { "version" : 1, "author" : "xcode" } }
在构建之后,我检查了Assets.car的文件大小.它比以前大得多.大约是"myImage@4x.png"大小的四倍 - 虽然在我的.imageset文件夹中,只有一个"myImage@4x.png".所以我假设Xcode在构建过程中添加了该图像的三个副本.
有谁知道如何阻止Xcode添加这些不必要的副本?如果您的应用包含许多资产目录,那么应用规模可能会显着增加......
在此先感谢您的帮助!