如何快速制作支持源码和 Framework 切换的 Cocoapods 库

最近一直在搞怎么加快编译速度,也查看了很多的资料。

加快XCode的编译链接速度(200%+)—XCode编译速度慢的解决方案

根据我自己的理解,我觉得大致分为下面几个方面优化。

  • 硬件方面(可以飞速提升)
    • 给编译结果存储采用机械硬盘存储
    • 提升机器配置 比如 CPU 内存硬盘
  • 基于技巧
    • 开启多线程编译 貌似最新的 Xcode9支持多线程编译 但是貌似机器会更卡 敲代码都一顿一顿的。
    • 使用 CCache 使用 Cache 是可以大幅度的节省大量的编译时间 但是我们用到很多打包的 Framework 使用了@import 不支持 Cache 很苦逼
    • 去掉 PCH 文件(减少 PCH 引用文件头改动) PCH 本来是为了引入外部的框架头部进行预编译,从而加快 buildbuild run 的速度的。 甚至可以方便开发人员在工程其他地方不需要再次引入框架就可以使用代码,加快开发速度。 但是许多开发人员没有了解 PCH 的原理,为了方便什么头文件都放在里面。结果没有起到加快编译还越来越慢。 最后苹果只好隐藏的不做支持,需要的自己去配置。
    • 修改工程配置
      • 关闭生成 DSYM 文件 发布一定要生成 不然崩溃都分析不出来
      • 开启 PCH 文件预编译 这个一旦导入的第三方有改动是不会及时编译的 比如上次我从 Carthage 转换成 Cocoapods
      • 其他 其他影响平时开发 收效不明显
  • 代码方面
    • 源代码尽量使用 Framework 比如工程不经常改动的类 或者第三方
    • 删除不需要代码文件 比如一些第三方库都没用到 一些新建类已经不用都可以删除
    • 减轻头文件不需要的#import 引用 只要引用的类有代码的改动 引用该类的文件就要重新编译
    • 删除工程的一些垃圾代码 比如一些根本不走的逻辑 或者方法

    前往小专栏查看全部 https://xiaozhuanlan.com/topic/0278956314

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构沉思录

从一笔金币充值去思考分布式事务

考虑支付重构的时候,自然想到原本属于一个本地事务中的处理,现在要跨应用了要怎么处理。拿充值订单举个栗子吧,假设:原本订单模块和账户模块是放在一起的,现在需要做服...

933
来自专栏程序员互动联盟

【答疑解惑第九讲】如何在linux下面编译一个简单的c语言程序

存在问题: 习惯了用IDE,习惯了点击执行按钮。在linux就不能这样了,该咋办? 解决方案: 随着android的大热,在linux下搞开发的人也越来越多,好...

37211
来自专栏魏艾斯博客www.vpsss.net

更换本地DNS 解决网站访问速度变慢问题

前段时间魏艾斯博客无意中发现 www.vpsss.net 打开速度很慢,打开首页还是内页都要等待 10 多秒才能打开,这就很尴尬了,老魏一直对外说自己博客打开速...

2872
来自专栏架构师小秘圈

大型网站图片服务器架构的演进

作者:丁浪,非著名架构师。关注高并发、高可用的架构设计,对系统服务化、分库分表、性能调优等方面有深入研究和丰富实践经验。热衷于技术研究和分享。 声明:版权归丁浪...

6794
来自专栏Python攻城狮

GitHub 系列之「团队合作利器 Branch」1.什么是分支?2.分支的常用操作3.基本的团队协作流程4.Git Flow

Git 相比于 SVN 最强大的一个地方就在于「分支」,Git 的分支操作简直不要太方便,而实际项目开发中团队合作最依赖的莫过于分支了,关于分支前面的系列也提到...

771
来自专栏机器学习实践二三事

Mac无法升级six, numpy等

OS 10.10以上,会出现你无法直接使用pip升级向six, numpy等,报错就是各种权限不够,加上sudo结果也一样,原因就是MacOS的系统完整性保护(...

2758
来自专栏腾讯大数据的专栏

zookeeper 运营经验分享

Zookeeper作为TDBank系统的一个重要模块,我们运营它已经两年多。在使用过程中,我们也遇到了一些问题及走过很多弯路,本文主要对zookeeper运营经...

2639
来自专栏菜鸟致敬

[菜鸟致敬⑤] 极简搭建 hexo博客

可能有人看到这里觉得文章写得太省略,比如 github还需要添加 ssh密匙一类的旁枝末节的东西,但是我想说的是,文章适用人群是菜鸟程序员而不是懵逼小白,我们需...

923
来自专栏黑泽君的专栏

QT5.10.0安装教程图文教程以及安装成功QT5.10.0后环境配置图文教程

QT是一个非常强大的图形用户界面应用程序开发框架,但是它现在不是很主流。虽然这样但是它的应用领域还是非常的广,特别是应用在嵌入式领域,非常多的公司喜欢用它来做界...

2191
来自专栏向治洪

android个推平台

最近有个朋友想要推送一些消息到自己的APP上,自己用了HTTP轮询的方式比较耗电,也比较占用流量,一旦用户关闭了进程,消息则很难触达,于是,咨询我有没有什么好的...

2066

扫码关注云+社区