最近作app安装包压缩工做html
主要工做:ios
1.精简资源文件,全部图片资源压缩,删除全部没有用到的图片资源。服务器
删除资源后安装包减小明显;app
二、更改工程编译配置iphone
将Generate Debug Symbols改成NO (debug状态下不要修改,否则调试过程当中会打断点无效)
将build setting中的Optimization Level设置为release 下改成(Fastest, Smallest [-Os]) debug 下不要改,否则打断点打印的时候,打印的对象可能会是nil函数
将build setting 中的Strip Debug Symbols During Copy设置为YES(COPY_PHASE_STRIP = YES),ui
Symbols Hidden by Default 在release版本应该设为yes,能够去除没必要要的调试符号。debug
3、删除重复的代码、冗余的代码、不用的类、函数、变量等调试
原来安装包大小33,952,168字节code
增长一个testViewController后大小33,943,592字节
添加一个空的viewcontroller不增长其余的方法,大概会增长8K的大小 大量的注释基本不会影响安装包的大小。
经过分析编译产生的.o文件的大小,查看安装包中哪些类占用的空间大,而后按大小从上往下遍历代码中的类,删除没用的代码。编译后,文件名和路径位于~/Library/Developer/Xcode/DerivedData/XXX-eumsvrzbvgfofvbfsoqokmjprvuh/Build/Intermediates/XXX.build/Debug-iphoneos/XXX.build/
由于服务器下发的JSON内容有不少字段,咱们app处理时候基本是每一个字段都解析了,因此本地好多类的变量不少,可是在下面的逻辑处理时候或者界面展现的时候,基本不用。例如orderSkuModel有两百多个变量,可是有不少变量都是解析完,没有使用。此时应该把他们去除。
这一轮修改后基本原来一千九百行的代码,删减后只剩一千行,原来的成员变量只剩一百个左右。
四:
去除项目中不用的framework、lib库等,项目中持续周期比较长,里面可能会有再也不使用的库文件。删除后,安装包减小比较明显。例如咱们项目中有个检测崩溃的库,在开发过程当中使用过,后期再也不使用,打包也不该该将其打进安装包,应将其删除。
比较好的技术点:
http://www.cocoachina.com/ios/20150202/11084.html
http://www.cocoachina.com/ios/20151203/14562.html
file JDKeplerDevApp 查看app文件详情
otool -l JDKeplerDevApp 查看app命令详情