我的iPhone应用程序即将投入生产,我们希望尽可能地压缩数据。当我在生成的应用程序文件中寻找时,我看到一个名为<executable name>的文件,我认为这是编译代码。它大约2.5兆字节,对于我包含在应用程序中的内容来说似乎很大。我应该检查哪些方面,以确保没有包含不必要的项目到我的可执行文件中?
我的iPhone应用程序即将投入生产,我们希望尽可能地压缩数据。当我在生成的应用程序文件中寻找时,我看到一个名为<executable name>的文件,我认为这是编译代码。它大约2.5兆字节,对于我包含在应用程序中的内容来说似乎很大。我应该检查哪些方面,以确保没有包含不必要的项目到我的可执行文件中?
你可以采取多种方法——2.5 MB 是一个小应用程序。
一种明显的方法是验证您的二进制文件是否已被剥离。这会删除未使用的引用(例如未实际调用的函数)和调试信息。
链接时优化(LTO)可以节省大量空间,尽管它适用于程序的 C 和 C++ 部分。它使我的一个程序大小减少了约五分之一。
尝试优化设置。 O3
和 O2
通常比 Os
产生更小的二进制文件。
跟踪依赖库。它们导出的符号可能相对较大。
在大型项目中,倾向于使用 C 或 C++ 进行共享库。如果未使用,则可以剥离或优化掉。
最小化 static
数据和 static
函数,将其范围限制在 c、cpp、m、mm 文件中。
我认为不必过于担心应用大小达到2.5MB,但如果你想要确保只包含真正需要的内容,可以仔细审查你的项目所引用的所有资源文件(图片、视图、电影等),确保应用程序使用了这些文件中的所有内容。