【问题标题】:Xcode Asset Catalog: Only one copy of each imageXcode Asset Catalog:每张图片只有一个副本
【发布时间】:2014-03-03 07:48:09
【问题描述】:

所以我创建了一个包含四个位置的资产目录:两个用于 iPhone,两个用于 iPad。现在我将图像拖放到相应的位置。

我的问题:假设我对 iPhone @2x 和 iPad @1x 使用相同的图像。但是 Xcode 会创建图像的副本,尽管完全相同的图像已经存在。

感谢this answer,我尝试手动解决这个问题。我打开 .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 中的每个“文件名”都更改为我的 @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 添加这些不必要的副本?如果您的应用包含许多资产目录,则应用大小可能会显着增加...

提前感谢您的帮助!

【问题讨论】:

  • 刚遇到同样的问题,有没有找到解决办法?

标签: ios objective-c xcode


【解决方案1】:

切片是为不同的目标设备创建和交付 app bundle 变体的过程。

来自https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

应用切片可防止应用大小增加,因为只有设备特定的资源会下载到客户设备。

从开发人员的角度来看,关于上传大小,您的担忧似乎是真的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多