2015-07-09 66 views
0

我们有一个大的(40Mb)大幅C++ iOS应用程序。由于iOS现在需要32位和64位代码片,我们现在有一个86Mb应用程序...这对于试图获得低于100Mb的总代码+数据下载没有用处。nm在iOS上的符号大小

我们怀疑可能有大量的在我们的应用程序的可执行文件的静态数据。 Unix nm的手册页提供了--sort-size和--print-sizes选项,它们应该给我们提供我们需要的东西。 XCode nm似乎不支持这一点。

有已有一个脚本来做到这一点重新排序? (这不会太难写,但似乎没有任何意义,网上没有人已经在讨论这个问题!)

大约50%的代码也是通过Unity和IL2CPP交叉编译的,所以有可能我们可以在IL上使用.NET内省工具,但如果可能的话,我宁愿将所有分析都保持原始大小。我担心的是,IL2CPP正在生成大量的C#元数据,这当然是因为它在可执行文件中结束后会被加密并且不会在IPA中进行压缩。

可替代地,已经有人使用为iOS 可执行尺寸减小的任何其他过程?

回答

0

您可以使用otool,而不是纳米得到你想要的大小的信息,虽然我不能肯定。 Unity论坛上有一个简短的build size analysis guide,可能会有所帮助。

你是正确的,可执行的显著部分为C#的元数据。但是,我们现在正在努力从可执行文件中删除元数据,并将其存储在外部文件中。最新的Unity补丁版本已经将大部分元数据进行了外化,并且在几周内它应该都是外部的。您应该能够在iOS构建输出目录的Data/Managed/Metadata目录中找到元数据文件。