一、素材相关

1. 音视频

  • 本地工程尽量不内置视频文件,走网络动态加载。
  • 本地音频文件一般控制在20~50KB。

2. 图片规范

  • 图片使用@2x,@3x即可,不需要用单倍的图片。
  • 非Gif图源文件不得高于120KB,一般控制在50KB,建议控制在20KB以下,小按钮图标一般Byte大小。
  • Gif图源文件尽量不高于1M。

3. 素材排查方式

  • 解压缩ipa包,检查ipa素材文件大小,同步替换工程内置图片和工厂打包所调整的图片素材,减少图片大小,可以利用图片在线压缩进行图片压缩。
  • 利用LSUnusedResource筛选工程中未使用的图片素材,如果有部分代码在git上以frameWork形式存在,调整需小心。

二、冗余代码检查

  • 利用AppCode检测未使用的代码:菜单栏 ->Code->InspectCode

三、编译器优化

1. Generate Debug Symbols

(Levels选项内)Generate Debug Symbols 设置为NO,这个配置选项应该会让你减去小半的体积。注意这个如果设置成NO就不会在断点处停下

ios的png压缩 ios照片压缩包_编译器优化

2. 舍弃架构armv7

armv7用于支持4s和4,4s是2011年11月正式上线,虽然还有小部分人在使用,但是追求包体大小的完全可以舍弃了。

ios的png压缩 ios照片压缩包_源文件_02

3. DEAD_CODE_STRIPPING

build setting 里 DEAD_CODE_STRIPPING = YES去掉冗余的代码

ios的png压缩 ios照片压缩包_ios的png压缩_03

4. Optimization Level

Build Settings->Optimization Level有几个编译优化选项,release版应该选择Fastest, Smalllest[-Os],这个选项会开启那些不增加代码大小的全部优化,并让可执行文件尽可能小。

ios的png压缩 ios照片压缩包_4s_04

5. 去除符号信息

Strip Debug Symbols During Copy 和 Symbols Hidden by Default 在release版本应该设为yes,可以去除不必要的调试符号。Symbols Hidden by Default会把所有符号都定义成”private extern”,设了后会减小体积。

ios的png压缩 ios照片压缩包_ipa_05


ios的png压缩 ios照片压缩包_ios的png压缩_06

6. Strip Linked Product

Strip Linked Product:DEBUG下设为NO,RELEASE下设为YES,用于RELEASE模式下缩减app的大小;

ios的png压缩 ios照片压缩包_ipa_07

7. Enable C++ Exceptions、Enable Objective-C Exceptions

编译器优化,去掉异常支持。Enable C++ Exceptions、Enable Objective-C Exceptions设置为NO,Other C Flags添加-fno-exceptions

  • Enable C++ Exceptions
  • ios的png压缩 ios照片压缩包_源文件_08

  • Enable Objective-C Exceptions
  • ios的png压缩 ios照片压缩包_编译器优化_09

  • Other C Flags添加-fno-exceptions
  • ios的png压缩 ios照片压缩包_源文件_10