16

在构建objective-c 静态库时,我注意到.a 文件(来自模拟器和iPhone 的胖文件)非常大。特别是,它最初是 5.7mb。我找到了这篇文章并将我的构建设置设置Generate Debug Symbols为否,将库大小减少到 1.7mb。

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

4

1 回答 1

20

如果它是您关心的一部分,静态库只是一起存档的相关 .o 文件加上一些簿记。因此,一个 1.7mb 的静态库——即使其中的代码是整个 1.7mb——通常也不会给你的产品增加 1.7mb。关于死代码剥离的通常规则将适用。

除此之外,您可以减少代码的构建大小。以下可能不是一个完整的列表。

在目标的构建设置中寻找“优化级别”。通过将其切换为“Fastest, Smallest -Os”,您将允许编译器牺牲一些速度来换取大小。

确保您正在构建拇指,更紧凑的 ARM 代码。-mno-thumb假设您使用的是 LLVM,这意味着确保您的项目设置中没有任何内容。

还要考虑要为哪些架构构建。Apple 不允许提交同时支持 ARMv6 和 iPhone 5 屏幕的应用程序,并且从最新的 Xcode 中完全放弃了对 ARMv6 的支持。所以在这一点上可能没有意义。

于 2012-12-06T22:53:29.293 回答