一尘不染

减少iOS App文件大小

swift

我用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在那做什么?


阅读 273

收藏
2020-07-07

共1个答案

一尘不染

实际上,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位alpha的8位可能是更好的方法,他们只是可以使用Photoshop进行文件的最终保存。他们只需要保存32位并压缩到其他位置即可。

http://calendar.perfplanet.com/2010/png-that-
works/

大卫

2020-07-07