1)找出程序的.ipa文件

        方法一:App Store下载应用,然后利用iTunesiOS设备做同步处理,接着查看目录:~/Music/iTunes/iTunes Music/Mobile Applications,就能找到.ipa文件了。


        方法二:通过使用: XcodeArchive命令来构造出.ipa文件——该文件与提交到App Store上的格式基本一致



(2)检查ipa文件:

        将后缀为.ipa文件修改为.zip,然后利用Finder将其解压出来。右键单击解压出来的.app bundle,选择显示包内容,以查看里面的资源文件。通过该方法我们可以看到哪些文件占的空间最大。



(3)IOS App Story相关因素

        提交到App Storeapp里的可执行文件是被加过密的。加密的副作用是可执行文件的压缩效果没有之前的好了,因为加密会隐藏一些细节问题。因此,从App Store下载下来的.ipa文件大小要比从本地build出来的.ipa文件大。


        注意:将长文本内容和表数据等从代码中移除,并添加到外部文件中,这样可以减小最终安装包下载的大小——因为这些文件的压缩效果更好。


        如果你选择Organizer window中的某个archived,然后点击Estimate SizeXcode可以对最终分发的程序尺寸做出一个评估。这里并不考虑Mac App Store上面的和企业级部署的iOS程序。



(4)编译选项

        将build setting中的Optimization Level设置为Fastest, Smallest [-Os]; build setting 中的Strip Debug Symbols During Copy设置为YES(COPY_PHASE_STRIP = YES),这样可以减小编译出二进制文件的尺寸。这里提到的这些设置在Xcode工程中对于Release的配置是默认的。


        警告:这些设置会让你的程序很难debug。在一般开发环境build中不建议这样设置,



(5)Target针对较小的CPUs

        默认情况下,Xcode工程都配置为:对程序指定的特定CPU类型做优化处理,以生成相对于的可执行文件。不同的硬件,将运行不同的可执行代码。虽然这样优化后的程序,只能针对某些设备运行,但是这大大减小可执行程序的大小。


        要想只设定特定类型的CPUs,可以修改build setting中的Architectures,将其从Standard $(ARCHS_STANDARD)修改为你希望支持的列表中对应的特定类型CPU。有效的CPU名称列在Valid Architectures (VALID_ARCHS) build setting中。请不要修改Valid Architectures设置项,最好由Xcode管理。



(6)对应用程序做一个完整性检查

        利用Inspecting Your App中介绍的流程,对.app bundle做一个全面的检查,以了解那些是真正需要用到的。在程序中,经常会包含一些额外的文件,例如readme之类的,这些从来都不会被用到。



(7)将数据从代码中剥离出来

        将所有的资源(例如很长的字符串)从代码中剥离出来,并存入外部文件,这样会减小最终文件下载的大小,因为这些文件的压缩效果更好



(8)尽量使用8-bit图片

        使用8-bitPNG图片,比32-bit的图片能减少4倍的压缩率。由于8-bit的图片支持最多256种不同的颜色,所以8-bit的图片一般只应该用于一小部分的颜×××片。例如灰度图片最好使用8-bit



(9)针对32-bit的图片尽量使用高压缩的比率

        利用Adobe PhotoshopSave For Web可以减小JPEGPNG的图片大小。在Xcode中,默认情况下,会自动的使用pngcrush来压缩.png图片。



(10)音频的压缩

        参考WWDC中的Audio Development for Games,里面介绍了如何有效的处理音频。常规来说,我们要使用AACMP3来压缩音频,并且可以尝试降低一下音频的比特率。有时候44.1khz的采样是没有必要的,稍微低一点的比特率也不会降低音频的质量。