iOS APP优化-ipa瘦身

APP达到一定体量后,瘦身是必经之路。各路大佬也都有优秀的文章,我自己也记录下方便以后查找,不对的地方也请大佬们评论区指正。

资源优化

  1. 删除无用资源

    • 重复的图片:1.名字一样 2.名字一样但是文件一样
    • 未使用的图片、音频、视频、plist文件等
    • 类似Readme这种无用文件
    • @1x的图片
  2. 资源压缩

    • 图片无损/有损压缩(imageoptimizer压缩工具)
    • 音频压缩(降低采样率)
    • H5资源包压缩
    • 使用Assets.xcassets来管理图片
  3. H5页面远端化(参考饿了么)

  4. 动态下载资源:字体、图片、配置数据等非必须资源

编译选项优化

Build Settings编译选项

  1. Optimization level设置为Fastest, Smallest[-Os](指定被编译代码的执行速度和二进制文件大小的优化程度)
  2. Strip Debug Symbols During Copy设置为YES(copy时剥离二进制符号)
  3. Strip Link Product 设为YES(控制是否剥离)
  4. Make Strings Read-Only设为YES(复用字符串字面量)
  5. Linking->Dead Code Stripping设为YES(消除无效代码)
  6. Deployment Postprocessing 设为YES(参考链接)
  7. Symbols hidden by default 设为YES(release时去除不必要的调试符号)(参考链接
  8. Enable bitcode 设为YES
  9. 去掉异常支持
    • Enable C++ Exceptions和Enable Objective-C Exception设为NO
    • 可以对默写文件单独支持异常,编译选项加上-fexceptions即可
    • 不能去掉,否则线程回溯就没了,会影响到崩溃日志的生成
  10. 所有没有使用C++动态性的lib库

可执行文件优化

  1. 去掉未使用的第三方库
  2. 整理重复的第三方库
  3. 去掉未使用的代码
    • 未使用的类
    • 未使用的方法/函数
    • 空函数可以删掉,比如仅实现了[super function]这种
  4. 整理重复代码
  5. 代码中很长的字符串抽离(提升压缩比率)
  6. 其他
    • 删除Framework中无用mach-O文件
    • 尽量少的使用属性,减少getter和setter
    • 用C函数代替OC函数

你可能感兴趣的:(iOS APP优化-ipa瘦身)