作家
登录

如何将iOS项目的编译速度提高5倍

作者: 来源: 2017-10-20 11:05:25 阅读 我要评论

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

在敕令行中,cd 到 ccache-clang 文件的目次,把它的权限改成可履行文件

  1. $ chmod 777 ccache-clang 

如不雅你的代码或者是第三方库的代码用到了C++,则把ccache-clang这个文件复制一份,重定名成ccache-clang++。响应的对clang的调用也要改成clang++,不然 CCache 不会应用在 C++ 的代码上。

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

完成后项目中应当有这两个文件

Xcode 项目标调剂

须要留意的是,如不雅你应用的某个 Pod 引用了体系框架,例如AFNetworking引用了System Configuration,你须要在你本身项目标Build Phrase -> Link Binary With Libraries琅绫擎代为惹人,不然你编译时可能会收到 Undefined symbols xxx for architecture yyy一类的缺点。有点回到了原始时代的感到,但推敲到编译速度的极大年夜晋升,这一点价值可以接收。

【编辑推荐】

  1. CocoaPods一个Objective-C第三方库的治劳顿器
  2. 如安在 Swift 中应用 CocoaPods
  3. 应用CocoaPods进行第三方资本治理
  4. 应用CocoaPods给微信集成SDK打印收发消息
  5. 手把手教你宣布本身的CocoaPods开源库
【义务编辑:未丽燕 TEL:(010)68476606】

定义CC常量

测验测验编译一遍,然后在敕令行里输入 cache -s 就能看见类似下面的 ccache 运行情况统计:

在你项目标构扶植置(Build Settings)中,添加一个常量CC,这个值会让 Xcode 在编译时把履行路径的可履行文件当做 C 编译器。

CC常量的值为 $(SRCROOT)/ccache-clang,如不雅你的脚本不是放在项目根目次,则自行调剂路径。如不雅一运行项目就报错,检查下路径是不是填错了。

封闭 Clang Modules

因为 CCache 不支撑 Clang Modules,所以须要把 Enable Modules 的选项关掉落。这个问题在 CocoaPods 上若何处理,后面会讲。

若何将iOS项目标编译速度进步5倍

封闭了 Enable Modules 后须要作出的调剂

因为封闭了 Enable Modules,所以必须删除所有的 @import语句,调换为#import的语法

例如将 @import UIKit 调换为 #import。之后,如不雅你用到了其他的体系框架例如 AVFoundation、CoreLocation等,如今 Xcode 不会再帮你主动惹人了,你得要在项目 Target 的 Build Phrase -> Link Binary With Libraries 琅绫擎本身手动惹人。


  推荐阅读

  化敌为友,Docker 宣布拥抱 Kubernetes

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 在当前企业改变传统的单体应用,拥抱更灵活的、应用容器的云原生 DevOps 模型的大年夜潮之下,Docker 具有先>>>详细阅读


本文标题:如何将iOS项目的编译速度提高5倍

地址:http://www.17bianji.com/lsqh/38068.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)