【发布时间】: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