跳到主要内容

包体积优化

问题

如何有效减小 iOS App 的安装包体积?

答案

包体积组成

资源优化

方法效果
使用 Asset Catalog自动 App Thinning(按设备下发)
图片压缩(TinyPNG)可减 50%+
使用 WebP 替代 PNG体积减 30%
使用 SF Symbols替代自定义图标
删除无用资源工具扫描(FengNiao)
大资源按需下载On-Demand Resources

代码优化

方法说明
Strip 符号Build Settings: Strip Linked Product = YES
Dead Code Stripping移除未使用代码
删除无用类/方法AppCode 静态分析
合并动态库减少 Mach-O 开销
Swift 标准库iOS 12.2+ 系统自带,不再打入包
编译优化-Osize 优化体积(vs -O 优化速度)

App Thinning

Apple 自动为不同设备生成最优包:

  • Slicing:按 CPU 架构(arm64)和屏幕(@2x/@3x)裁剪
  • Bitcode:Apple 服务器重新编译优化(已弃用)
  • On-Demand Resources:按需下载游戏关卡等资源

常见面试问题

Q1: 如何分析 IPA 包的组成?

答案

  1. App Thinning Size Report:Archive → Distribute → 导出报告
  2. 解压 .ipa(改后缀 .zip),查看各文件大小
  3. xcrun size -x -l -m YourApp 分析 Mach-O 段大小
  4. 使用 LinkMap 文件,分析各模块代码体积占比

相关链接