提高Xcode编译速度


提高Xcode编译速度

最近在做公司项目的时候,由于工程比较大,引入的第三方比较多,所以项目编译速度很慢,就想办法优化。总结出几条建议,这里做一下记录,希望对大家有用。整体方法大致分为以下几种,如有不对的地方,敬请提出,欢迎指正。

第一、通过CCache大幅提高编译速度(本人也是这样解决的)

我也是借鉴别人的经验,尝试了很多的方法,但是这个方法最有效,起码节省了50%以上的编译时间(这个都有点保守了),废话不多说,直接上步骤

  1. 安装之前,首先你的电脑上需要安装:Homebrew
    安装Homebrew自行百度,安装过程中会安装Xcode的一个工具,保证磁盘空间足够,等待客户端安装完成
  2. 运行代码
$ brew install ccache

cd到项目目录,执行以下命令新建一个文件命名为 ccache-clang 的空白文件。

$ touch ccache-clang

找到这个ccache-clang文件,输入下面的脚本并保存

#!/bin/sh
if type -p ccache >/dev/null 2>&1; then
  export CCACHE_MAXSIZE=10G
  export CCACHE_CPP2=true
  export CCACHE_HARDLINK=true
  export CCACHE_SLOPPINESS=file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches
  
  # 指定日志文件路径到桌面,等下排查集成问题有用,集成成功后删除,否则很占磁盘空间
  export CCACHE_LOGFILE='~/Desktop/CCache.log'
  exec ccache /usr/bin/clang "$@"
else
  exec clang "$@"
fi

为了保证cocoaPods的正常使用,按照上面的命令再创建一个文件命名为 ccache-clang++ 的空白文件

#!/bin/sh
if type -p ccache >/dev/null 2>&1; then
  export CCACHE_MAXSIZE=10G
  export CCACHE_CPP2=true
  export CCACHE_HARDLINK=true
  export CCACHE_SLOPPINESS=file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches
  
  # 指定日志文件路径到桌面,等下排查集成问题有用,集成成功后删除,否则很占磁盘空间
  export CCACHE_LOGFILE='~/Desktop/CCache.log'
  exec ccache /usr/bin/clang++ "$@"
else
  exec clang++ "$@"
fi

在命令行中, ccache-clang 文件的目录,把它的权限改成可执行文件

$ chmod 777 ccache-clang
$ chmod 777 ccache-clang++

然后在Xcode项目中增加一个CC常量
   在你项目的构建设置(Build Settings)中,添加一个常量CC,这个值会让 Xcode 在编译时把执行路径的可执行文件当做 C 编译器。CC常量的值为 $(SRCROOT)/ccache-clang,如果你的脚本不是放在项目根目录,则自行调整路径。如果一运行项目就报错,检查下路径是不是填错了。

简单来说,这一步算是大功告成了,可以尝试一下,编译速度飞起

第二、注意自己的代码编写习惯

这一条也很重要,就是在项目中的.h中,自定义的类,尽量使用@class name 这样在项目编译期间,知道这个类,然后在.m文件中再import

我也尝试了其他几种方法,一个是开启Xcode的线程数量,还有将Index索引这一步去掉,以及关闭执行日志,感觉都不是很好,希望这个方法对大家有帮助


文章作者: 小小学生
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小小学生 !
评论
  目录