我用Xcode 6.1和Swift制作了一个非常简单的iPhone应用程序。我 对ios开发真的很陌生,遇到了一个134 mb的应用程序!当然 这是不可接受的。
我的所有屏幕尺寸的背景图像加起来总计20 mb。就是 这样!我将这些图像存储在xcassets中,因为那是我猜的首选方式。
我认为该应用程序不应超过25 mbs。
我发现我的项目中有一些参考文献加倍。我删除了 这些,但我的.app文件仍然是89 mbs!
我究竟做错了什么?我读了一些关于此的主题,但没有什么真正的 帮助!
到目前为止,我所做的是:
- reduce the size of all pngs - disable the compress PNG option, as it seems to make the PNGs bigger (lol) - configured the build settings to run the fastest and smallest build - Strip Debug Symbols During Copy build setting to Yes (COPY_PHASE_STRIP = YES)
edit1:显然Xcode对我的png做了一些奇怪的事情。.app文件中的某些图片最初为2 mb,超过10 mb。什么 不会的Xcode做呢?
实际上,Apple重新压缩的文件更大并不奇怪。 它们针对快速加载而不是小尺寸进行了优化。如果您不在乎 速度大小,请严格关闭压缩。即使您关心 速度,也可以比Apple做得更好。
https://imageoptim.com/xcode.html
因此,请关闭PNG压缩。我要做的第一件事是建立 ipa。IPA实际上是一个zip文件,因此请构建该IPA,将其复制到 Mac上的文件夹中,以.zip扩展名重命名该文件,然后双击它。这 将扩展它。在有效载荷文件夹中找到该应用程序,然后右键单击 它,然后选择显示包内容。您将看到所有资产。按 大小排序。我猜您的图片太大了。以这样的大小,我猜想 ,多余的大小几乎完全是由PNG文件引起的。
考虑使用非视网膜图像。老实说,大多数人不会注意到。 iOS将在视网膜上正常使用非视网膜。这样可以节省大量 空间,
如果您 不需要透明度,也可以考虑对某些文件使用jpeg文件而不是PNG 。Jpeg文件效率较低,但可以更小。 比较两者。取决于图像连续色调的程度。
默认情况下,PNG文件为32位。24位彩色和8位Alpha /透明度。 您可以通过转至24位来节省一点大小。您还可以节省很多尺寸 ,以达到16位以下的颜色。在8位PNG文件中使用颜色查找表。 在位深度为8或 以下的PNG中使用Photoshop和“为我们保存”选项。
我有各种昂贵的压缩软件,但经常使用$ 8
https://itunes.apple.com/us/app/lossless-photo-squeezer/id704083918?mt=12
尝试使用8位PNG选项和JPEG选项。
编辑我做了一些研究。我一直都知道Fireworks可以更好地进行PNG 压缩。我没有意识到有一个带有8位alpha 通道的8位PNG 。Photoshop支持带有1位Alpha通道的8位。我一直 告诉人们,如果透明度需要超过1位,请使用32位PNG。在 将来,我会让他们知道的8位与8位alpha可能是更好的 途径,他们正好可以利用Photoshop进行最后保存文件。他们只 需要保存32位并压缩到其他位置即可。
http://calendar.perfplanet.com/2010/png-that-works/