2019独角兽企业重金招聘Python工程师标准>>>
最近做app安装包压缩工作
主要工作:
1.精简资源文件,所有图片资源压缩,删除所有没有用到的图片资源。
删除资源后安装包减少明显;
2、更改工程编译配置
将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),
Symbols Hidden by Default 在release版本应该设为yes,可以去除不必要的调试符号。
三、删除重复的代码、冗余的代码、不用的类、函数、变量等
原来安装包大小33,952,168字节
增加一个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命令详情