iOS工程编译速度优化

Posted 王飞飞不会飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS工程编译速度优化相关的知识,希望对你有一定的参考价值。

背景

公司的ios工程随着历史迭代,重新编译一遍的话需要450s,非常影响开发效率。

自己试一试二进制pod库,来优化下iOS项目的启动时间。

https://juejin.cn/post/6844904025624674311

https://github.com/su350380433/cocoapods-imy-bin-demo

官方流程

1.创建一个存放二进制私有源仓库

如:https://github.com/su350380433/example_spec_dev

并添加到本地仓库中

pod repo add example_spec_bin_dev git@github.com:su350380433/example_spec_bin_dev.git

2.安装mongodb

# 进入 /usr/local
cd /usr/local

# 下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz

# 解压
sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz

# 重命名为 mongodb 目录

sudo mv mongodb-osx-x86_64-4.0.9/ mongodb

#创建一个数据库存储目录 /data/db:
sudo mkdir -p /data/db

3. 启动mongod

sudo mongod

4. 启动静态资源服务器

cd ../binary-server

npm install

npm start #确保mongod 已经启动成功

实际问题

  • sudo mkdir -p /data/db 报错 mkdir: /data/db: Read-only file system

解决方案:https://blog.csdn.net/shine_a/article/details/104201167

  • sudo mongod 报错 sudo: mongod: command not found

解决方案:https://www.cnblogs.com/zwjphp/p/14030946.html

成果

最后发现能稍微快一点点。只有10s左右这样的效果。

再次尝试

这次锁定CCache这个方案,参考文档https://zhuanlan.zhihu.com/p/27584726

实施步骤

  • 安装ccache

  • 创建ccache脚本文件

  • xcode配置脚步文件

  • xcode配置Module Enable 为NO

  • 修改代码

实际问题

实际问题主要是Module设置成No之后代码需要调整。因为涉及到swift混编。

最终成果

经过10次尝试,编译时间已经稳定在270s左右。相比于最开始的450s,提高了40%。

以上是关于iOS工程编译速度优化的主要内容,如果未能解决你的问题,请参考以下文章

iOS工程编译速度优化

由美团文章“一款可以让大型iOS工程编译速度提升50%的工具”引出的.hmap文件(下)hmap落地

如何优化 Android Studio 启动,编译和运行速度

iOS之性能优化·提高App的编译速度

开启多线程加快编译速度

有赞iOS-基于二进制的编译提效策略