iOS 性能优化之安装包瘦身

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


image.png

资源瘦身

资源瘦身包括删除没有用的资源文件压缩正在使用的资必要时把相关资源放到服务端第一次启动的时候下载,资源包括图片文件、音视频文件、配置文件、字体文件等。一般来说我们复制文件名字在项目里面查找如果没有就可以删掉了,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。
image.png

你可能感兴趣的:(iOS 性能优化之安装包瘦身)