前言
应用的包体积大小会影响用户的点击下载率、安装成功率和卸载率,是衡量APP性能的一项重要指标。为了更好的用户体验,减少用户下载等待时长、减少手机存储空间占用,对包体积大小的优化也是尤为重要的。
安装包ipa的内容
iOS打包出来的ipa,本质上是一个压缩包,可以将.ipa的后缀改为.zip,然后进行解压缩后会得到一个Payload文件夹,里面又一个xxx.app的文件,右键显示包内容可以看到具体内容:
- _CodeSignature: ipa包签名文件
- .lproj: 语言文件
- Frameworks: 第三库、SwiftSupport库
- Plugins: App创建的扩展,比如Widget、Push、分享
- Assets.car: 由Assets.xcassets生成的资源文件,里面包含各种分辨率的图片
- embedded.mobileprovision: 证书配置文件
- Info.plist: 项目配置
- exec格式的xxx: Mach-O格式的可执行文件
- 其它资源文件
.mp3格式的文件
.html的文件
.json的文件
.png或者.jpg的文件
Mach-o的文件结构:

- Header,存放了二进制文件的基本信息,包括文件是32位还是64位、运行该文件对应的处理器架构是什么、文件类型(比如可执行文件)、Load Commands的个数和大小等等。
- Load Commands,是一个struct结构,用来告诉内核和dyld,如何将APP运行所需资源加载到内存。比

本文探讨了iOS应用包体积优化的重要性,并详细介绍了资源瘦身和Mach-o文件优化的方法。资源瘦身包括移除无用资源和使用有损压缩,如RGB with palette、webp格式。Mach-o文件优化涉及-Oz编译参数、Link-Time Optimization和属性动态化,以减少二进制文件大小。通过这些优化措施,可以显著降低ipa包的大小,提高用户体验。
1462

被折叠的 条评论
为什么被折叠?



