一尘不染

减少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做呢?


阅读 249

收藏
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位与8位alpha可能是更好的
途径,他们正好可以利用Photoshop进行最后保存文件。他们只
需要保存32位并压缩到其他位置即可。

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

2020-07-07