iOS 性能优化之安装包瘦身
2020-05-20 本文已影响0人
SnoopPanda
iOS安装包是由资源和可执行文件两部分组成,下图是我们一个刚上线App打包出来的IPA包解压出来的结果,_CodeSignature文件夹下面的CodeResources就是我们的代码和导入项目的三方库,往下面就是App图标启动图还有一些国际化的配置文件,Assets.car是我们项目里面的图片资源。一般项目用到声音文件、字体文件、xib文件等也会打包在App里面。我们的App瘦身思路可以从资源和可执行文件

资源瘦身
资源瘦身包括删除没有用的资源文件
、压缩正在使用的资
、必要时把相关资源放到服务端第一次启动的时候下载
,资源包括图片文件、音视频文件、配置文件、字体文件等。一般来说我们复制文件名字在项目里面查找如果没有就可以删掉了,LSUnusedResources会对我们有帮助。
- .xcassets
苹果推荐我们使用的图片管理方式,提供了图片渲染、拉伸模式、机型适配等功能,打包以后所有的图片都会放到一个Assets.car
文件中,TinyPNG可以帮助我们压缩图片。 - 启动图
尽量使用LaunchScreen.storyboard
,你只需要在上面设置一张imageView就可以了。 - 其他
注意资源文件重复的问题,相同的图片不同的名字在不同的地方使用,或者在协作开发的时候由不同的同事导入。
可执行文件
-
语言的选择
任何一个包含了Swift代码的App都有一个为了支持Swift的动态库集合,在10M左右,在OC中就用不到这个东西。
image.png
-
三方库的选择
在实现同一个功能有可能有好几个对应的三方库可以选择,比如数据库。
image.png
image.png
image.png
- 静态库瘦身
通过lipo
工具可以查看支持的指令集,删除无用的指令集(一般指的模拟器的) - Bitcode
bitcode 是被编译程序的一种中间形式的代码。包含 bitcode 配置的程序将会在 App Store 上被编译和链接。 bitcode 允许苹果在后期重新优化我们程序的二进制文件,而不需要我们重新提交一个新的版本到 App Store 上。
当我们提交程序到 App Store上时, Xcode 会将程序编译为一个中间表现形式( bitcode )。然后 App store 会再将这个 bitcode 编译为可执行的64位或32位程序。
所以,通过这个方式,我们可以做到架构级别的App Slicing。
