什么是减lessobjective-c中静态库大小的最佳实践?

在构buildObjective-C静态库时,我注意到.a文件(来自模拟器和iPhone的胖文件)非常大。 特别是原来的5.7MB。 我发现这个职位,并设置我的Generate Debug Symbols设置Generate Debug Symbols为否,减less库大小为1.7MB。

这是一个很大的改进,但还有什么可以做的吗? 单独的实现和头文件占用大约100kb。

万一它是你的关注的一部分,一个静态库只是相关的.o文件一起归档加上一些簿记。 所以1.7mb的静态库 – 即使其中的代码是整个1.7mb – 通常不会增加1.7mb到您的产品。 有关死代码剥离的通常规则将适用。

除此之外,您可以减less代码的内置大小。 以下可能不是一个全面的列表。

在目标的构build设置中查找“优化级别”。 通过将其切换为“最快,最小的-Os”,您将允许编译器牺牲一些速度。

确保你正在构build更紧凑的ARM代码。 假设您使用LLVM,这意味着确保在项目设置中的任何位置都没有-mno-thumb

还要考虑要为其构build的体系结构。 苹果不允许提交支持ARMv6和iPhone 5屏幕的应用程序,并完全从最新的Xcode中删除ARMv6支持。 所以在这一点上可能没有任何意义。