Xcode资产目录: 每个图像只需一份副本

5
所以我创建了一个包含四个位置的资产目录:两个为iPhone和两个为iPad。现在我将我的图片拖放到相应的位置。
我的问题是:假设我在iPhone @2x和iPad @1x上使用相同的图像。但是,虽然完全相同的图像已经存在,但Xcode仍会创建该图像的副本。
所以根据这个答案,我试图手动解决这个问题。我打开.imageset文件夹并像这样编辑Contents.json文件中的“文件名”:(我还删除了文件夹中的重复图像。)
{
  "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中的每个“filename”更改为我的@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添加这些不必要的副本?如果您的应用程序包含多个资产目录,则应用程序大小可能会显着增加...
提前感谢您的帮助!

1
刚刚遇到了同样的问题,你找到了一些解决方法吗? - Mikhail
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接