iOS 安装包瘦身

1、App Thinning

苹果针对安装包已经做了三个层面的瘦身工作。

1.1 App Slicing

我们打包时,常选择arm64、armv7s 等架构支持。但是上传苹果应用商店后,他为我们的应用安装包针对不同的机型架构,生成了特定的安装包。也就是不同arm64架构的机型不会下载armv7s架构的安装包。

1.2 On Demand Resource

资源按需下载。XCode默认开启了改功能。为资源设置tag值,对应于使用到改资源的文件,绑定tag对应的tag值,当需要用到的时候下载对应的资源文件。

1.3 BitCode

2、资源瘦身

2.1 删除项目中未用到的资源文件

删除项目中未用到的图片资源(切记防止误删,有些使用字符串拼接图片名的使用方式可能不能被识别到)。

查找工具:
LSUnusedResources

2.2 压缩图片

对图片资源在不影响显示效果(失真度)的情况下进行适当压缩。

图片压缩工具

  1. tinypng
  2. pngquant
  3. ImageAlpha
  4. ImageOptim

3、代码瘦身

Optimization Level: Fastest,
Smallest Deployment Postprocessing: Yes
Strip linked Product: Yes
Symbols Hidden by default: Yes
Make Strings Read-only: Yes

3.1 删除项目中未用到的类文件

3.2 删除项目中未用到的方法/函数

查找项目中未使用方法的脚本工具 selectorsunref-master
使用方法:iOS代码瘦身:未使用的方法

  1. 执行 python selectorsunref.py
  2. 输入的第一个参数为xxx.app,可以把Xcode products目录下的xxx.app拖到命令行,这个参数是为了拿到.app下的mach-o文件,分析使用的方法和未使用的方法。
  3. 输入的第二个参数是工程目录,这个参数是为了递归遍历找到工程中所有的.h文件,然后过滤掉包含的协议方法。

3.3 一个根据linkMap文件计算Xcode里各个工程代码占安装包大小的工具

该脚本功能主要是把各个工程所占可执行文件的大小统计出来。

iOS 应用安装包瘦身相关推荐

  1. 京东商城iOS客户端安装包瘦身实践

    一.概述 随着业务的快速增加,商城app的大小也在迅速增加,一度超过了300M.安装包大小的不断增加对app下载成本,推广效率产生了比较大的影响.从2018年9月份我们对商城app开始了为期二期的专项 ...

  2. iOS App 安装包瘦身指南

    以下列出了安装包瘦身的无脑执行流程,其中"奇技淫巧"部分为选做题 资源优化 删除无用图片 使用LSUnusedResources查找无用图片 删除重复资源 压缩图片资源 使用Ima ...

  3. iOS安装包瘦身的那些事儿

    在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100 ...

  4. Android App安装包瘦身计划

    Android App安装包瘦身计划 Android App安装包体积优化: 理由, 指标和可以采用的方法. 本文内容归纳如下图: 为什么要安装包瘦身 安装包需要瘦身吗? 不需要吗? 安装包要瘦身的主 ...

  5. 贝壳找房APP安装包瘦身

    一.背景 在满足产品.UI要求的前提下,尽量减少安装包体积. 以customer插件为例: 插件大小为5MB, 其中1MB是dex,而bkbase占了dex的580KB: 3.1MB是图片. 减少re ...

  6. Unity3D_NGUI_安卓APK安装包瘦身实践

    减包瘦身是个精细活.本文整理了0907版本操作过程,以备日后参考. 经过一番折腾,各位攻城狮的努力,美术设计师的支持,策划爷的理解,UI资源(图集.字体.单局外模型贴图)从45.4MB减少到24.5M ...

  7. iOS - ipa安装包大小优化

    在App Store上显示的下载大小和实际下载下来的大小,我们通过下表做一个对比: iPhone型号 系统 AppStore 显示大小 下载到设备大小 iPhone6 10.2.1 91.5MB 88 ...

  8. iOS 启动优化和安装包瘦身

    iOS 启动优化和安装包瘦身 1 启动优化 在iPhone的启动方式中,分为冷启动和热启动两种方式: 1.冷启动(Cold Launch):从零开始启动APP ,需要系统新创建一个进程进行启动,这是一 ...

  9. iOS ipa 安装包安装失败原因

    前言 iOS 的内测应用在安装时,很多人都遇到过安装失败的情况,安装失败的原因比较多,下面将一些常见原因总结如下,方便开发者进行排查. 在 iOS 9 中启动应用时,出现提示"未受信任的企业 ...

  10. Swift 5 将进一步减小 iOS 应用安装包大小

    百度智能云 云生态狂欢季 热门云产品1折起>>>   10年来,苹果开发者生态系统的最大变化是引入了 Swift 语言.在今年的 WWDC 上,我们将会看到另外一个巨大更新:在 Ma ...

最新文章

  1. python装饰器原理-python装饰器原理和用法总结
  2. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 自定义控件过渡绘制 | 布局文件层次深 | GPU 过渡绘制调试工具 | 背景过度绘制 )
  3. Nginx报错request entity too large的解决方案
  4. select 选择器php,php – 选择laravel 5.4中下拉列表的选定值
  5. 关于内置浏览器的问题
  6. 线性筛法求质数分解、欧拉函数
  7. PHP 调用阿里云短信服务API操作短信模板(增删改查)
  8. 差分管电路图_电子管差分放大电路改造方案
  9. jdk提供的用于并发编程的同步器有哪些
  10. 苹果Mac电脑缓存如何清理?
  11. 中学-知识与能力【8】
  12. PPPOE和IPOE
  13. mac 远程控制android,允许Mac用户使用其Android设备远程控制其Mac媒体
  14. Windows系统下的NTP时间同步
  15. 用python完成选股策略a股_Python 金融: 0亏损选股策略
  16. android内置sd卡挂载过程,Android获取机身存储、内置SD卡与外置TF卡路径
  17. java解有虚根的一元二次方程(超简单代码)
  18. 苹果计算机 win10,苹果怎么装win10苹果装win10详细教程【图文】
  19. Excel删除指定列(VB)
  20. 基于用户的协同过滤与基于物品的协同过滤比较

热门文章

  1. G: LZY的计算器
  2. 英伟达首席科学家:深度学习硬件的过去、现在和未来
  3. 怎么将PDF文件分成若干个小文件呢
  4. Ant下载及配置安装
  5. 挖金矿问题-动态规划- 备忘录算法(最优解)
  6. 16、Mip-NeRF360
  7. 基于 Si446x 上的 RSSI 测量的自动操作
  8. 深度评测阿里云、腾讯云和华为云
  9. 数独解法Java实现
  10. it人才外包可以帮助企业解决这些问题