直接上建议:

  • 资源优化

    • 删除无用图片

      • 使用 LSUnusedResources 查找无用图片。注意 [UIImage imageNamed:[NSString stringWithFormat:"icon_%d.png",index]]; 这种使用图片的方式,可能会被误删。
    • 删除重复资源
    • 压缩图片资源
      • 使用 ImageOptim 无损压缩图片。
      • 使用 TinyPNG 有损压缩图片。使用的时候直接执行 tinypng *.png -k token 脚本即可。
    • 其他技巧(选用)
      • 用 LaunchScreen.storyboard 替换启动图片。
      • 本地大图片都使用 webp。
      • 资源按需加载,非必要资源都等到使用时再从服务端拉取。
  • 编译选项优化
    • Optimization Level 在 release 状态设置为 Fastest/Smallest。
    • Strip Debug Symbols During Copy 在 release 状态设置为 YES。
    • Strip Linked Product 在 release 状态设为 YES。
    • Make String Read-Only 在 release 状态设为 YES。
    • Dead Code Stripping 在 release 状态设为 YES。
    • Deployment PostProcessing 在 release 状态设为 YES。
    • Symbols hidden by default 在 release 状态设为 YES。
  • 可执行文件优化
    • 使用 LinkMap 分析库的使用情况
    • 三方库优化
      • 删除不使用的三方库。
      • 功能用的少但是体积大的三方库可以考虑自己重写。
      • 合并功能重复的三方库。
    • 代码分析
      • 用 AppCode 进行代码扫描。
      • 去掉无用的类及文件。
      • 清理 import。
      • 去掉空方法。
      • 去掉无用的 log。
      • 去掉无用的变量。
    • 其他技巧(选用)
      • 将业务打包成动态库。如果动态库的加载时机不控制好,会影响 App 的启动速度,权衡使用。
      • 动态化。将一部分 Native 界面用 RN/Weex 重写。
      • 去除 Swift 代码,Swift 的标准库是打包在安装包里的,一般都有 10M+。然后苹果官方说等到 Swift Runtime 稳定之后会合并到 iOS 系统里,那时候使用 Swift 就不会显著增加包大小了。
      • 在 target -> Build Settings -> Other Link Flags 里添加如下指令,会把 TEXT 字段的部分内容转移到 RODATA 字段,避免苹果对 TEXT 字段的审核限制。当然其实跟安装包瘦身好像没有什么关系,所以除非快不行了否则不建议操作。-Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring -Wl,-rename_section,__TEXT,__gcc_except_tab,__RODATA,__gcc_except_tab -Wl,-rename_section,__TEXT,__const,__RODATA,__const -Wl,-rename_section,__TEXT,__objc_methname,__RODATA,__objc_methname -Wl,-rename_section,__TEXT,__objc_classname,__RODATA,__objc_classname -Wl,-rename_section,__TEXT,__objc_methtype,__RODATA,__objc_methtype
    • 苹果官方的策略
      • App Thinning

        • 使用 xcasset 管理图片。
      • 开启 BitCode
精选全网 · iOS面试题答案PDF文集
  • 最新 初级iOS 面试题
  • 最新 中级iOS 面试题
  • 最新 高级iOS 面试题
  • 《BAT面试资料全集》
  • 《BAT大厂常问iOS面试题》
  • 《2021年面试真题》
  • 《iOS中级到高级面试题完整版》
  • 字节跳动,京东,小米,腾讯、头条、阿里、美团等公司21年的面试真题

资料下载地址:

获取地址:https://docs.qq.com/doc/DVU5LY1Bsb3dSZ3Nn

更多文章:

最新iOS面试题:MVVM和MVC的区别?(①系列更新)
最新iOS面试题:iOS开发-组件化(②系列更新)

最新iOS面试题:如何优化 App 的的包大小?(③系列更新)相关推荐

  1. 2019最新iOS面试题及答案

    1. Object-C的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-C的类不可以多重继承;可以实现多个接口,通过实现 ...

  2. 腾讯—最新iOS面试题总结

    关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教.主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧. 腾讯 一面 1.介绍一下实习的项目,任务分 ...

  3. 2020年6月最新iOS面试题总结(答案篇)

    之前发了这篇iOS面试总结(2020年6月),没想到挺受大家欢迎,本来是没打算为它写答案,但有几个人建议我最好出一篇答案,提的人多了我就答应了下来.因为最近比较忙,断断续续总算补完了,就有了这篇文章, ...

  4. 2023年最新前端面试题——你也可以成为那个卷王(持续更新中~)

    1.快速居中对齐(版心) 父 display:flex; 子 margin:auto; 2.margin和padding的区别 作用对象不同,margin相对于外部,padding相对于自身 3.vw ...

  5. 2019年ios权限描述文字—所有APP通用版包过App Store审核

    Privacy - Camera Usage Description(相机):APP需要您的同意,才能访问相机进行拍摄商品信息,如禁止将无法拍照拍摄图片无法更新信息 Privacy - Photo L ...

  6. 抖音包大小优化-资源优化

    1.概述 随着业务的快速迭代,抖音 Android 端的包大小爆发式增长.包大小直接影响到下载转化率.推广成本.运行内存和安装时间等因素,因此对 apk 进行瘦身是一件很有必要且收益很大的事情.apk ...

  7. 【前端教程】抖音包大小优化-资源优化

    1.概述 随着业务的快速迭代,抖音 Android 端的包大小爆发式增长.包大小直接影响到下载转化率.推广成本.运行内存和安装时间等因素,因此对 apk 进行瘦身是一件很有必要且收益很大的事情.apk ...

  8. iOS之性能优化·优化App的启动速度

    抛砖引玉 启动是 App 给用户的第一印象,启动越慢用户流失的概率就越高,良好的启动速度是用户体验不可缺少的一环. 苹果是一家特别注重用户体验的公司,过去几年一直在优化 App 的启动时间,特别是去年 ...

  9. block的理解 ios_iOS面试--字节跳动最新iOS开发面试题

    序言 以下iOS面试题仅供参考,毕竟面试是不可控的,但懂得越多,自然机会越大! 字节一面内容: 1. 自我介绍 2. 介绍一下简历中的一个项目 3. 面向对象的三个要素 4. 多态? 5. Java, ...

最新文章

  1. oracle em 性能点不进,oracle em节点启动不成功问题处理总结
  2. 玩转OpenVswitch:简介
  3. linux下ntp服务器搭建方法
  4. mysql数据库怎么安装建表_mysql数据库安装及建表注意事项
  5. 感知器及其在python中的实现_感知器及其在Python中的实现
  6. 阿里巴巴开发规范集合处理
  7. mysql 同一天多条记录只取第一条_MySQL面试高频100问(二)
  8. SpringMVC系列(九)自定义视图、重定向、转发
  9. 神经网络的输出层有哪些_深度学习的数学-神经网络、输入层、隐藏层、输出层...
  10. Binutils工具集中的一些比较常用的工具
  11. Nginx增加第三方外部插件
  12. Atitit gui的实现模式文本 dom ast 像素绘图api native 目录 1. Pl ast xml domAst 1 1.1. 简介 1 1.1.1. 【具体语法树】 2 2.
  13. 关于华为9.0系统 应用图标消失处理
  14. 项目:金融行业反欺诈模型
  15. Nginx报Too many open files
  16. 概率问题的求解 —— 样本空间
  17. vMotion迁移报错提示目标主机不支持虚拟机的当前硬件要求
  18. 【简易搭建个人博客】------- 基于BT面板的个人博客搭建
  19. 网站seo优化推广方式有哪些?如何提高网站排名?
  20. mysql使用需要钱吗_SQL Server是要钱的吗?是怎么要的?

热门文章

  1. PVE 7.4.3 1080ti显卡直通
  2. 分布式接口幂等性的实现
  3. WPF入门教程教学(转载)
  4. 浏览器的内存泄漏(memory leak)问题
  5. 可以视频翻译的软件有哪些?1分钟告诉你三个视频翻译软件推荐
  6. TF卡只读数据三年后的变化
  7. 图像视频滤镜算法详解系列
  8. mysql计算单词的个数_统计单词个数
  9. git切换分支合并后再切回原来分支导致没有提交的代码丢失
  10. 斗地主游戏制作流程(1)