浅析XCode编译过程

作者: 微微笑的蜗牛 | 来源:发表于2017-01-09 23:42 被阅读2659次

作为iOS开发,XCode一天编译几十上百遍是常事。cmd+B,两指一按,哗啦啦的就开始build了。但是,我们是否曾想过,这背后究竟做了哪些工作呢?工具会用是最基本的,但也要适当了解其原理。

build一瞥

模拟器build过程如图。


process@2x.png

大致的过程是:

  • compile各个.m文件
  • copy静态资源,包括img,string,font。
  • compile xib
  • compile storyboard
  • compile asset catalogs
  • process info.plist
  • link storyboards
  • run custom script
  • touch app
  • sign app
  • validate app(真机build有)

另外,如果工程有第三方依赖库,首先会build依赖库target,然后build主target。

QQ20170106-5@2x.png

build过程

clang compile
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch x86_64 -W -c path/main.m -o path/main.o
  • -x 表示编译语言
  • -arch 表示编译的架构
  • -W 各种编译警告
  • -c 表示进行预处理,编译,汇编过程
  • -o 输出结果
copy静态资源

copy图片到app

/Applications/Xcode.app/Contents/Developer/usr/bin/copypng 
-compress -strip-PNG-text path/MaskView/MaskView/en.lproj/icons.png path/MaskView.app/en.lproj/icons.png

copy strings

builtin-copyStrings
compile xib

编译xib,生成nib文件

/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool
compile storyboard

编译storyboard,生成.storyboardc文件,打开包内容,是nib+plist。

/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool
compile asset catalogs

生成Asset.car文件。

/Applications/Xcode.app/Contents/Developer/usr/bin/actool
process info.plist

处理info.plist

builtin-infoPlistUtility
link storyboards

链接storyboard

/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool
run custom script

执行脚本

/bin/sh
touch app
/usr/bin/touch
sign app

对app进行签名

/usr/bin/codesign
validate app

校验app

builtin-validationUtility

相关文章

  • 浅析XCode编译过程

    作为iOS开发,XCode一天编译几十上百遍是常事。cmd+B,两指一按,哗啦啦的就开始build了。但是,我们是...

  • Xcode编译过程

    Xcode编译过程 打包过程 源码编译 静态库链接 资源编译、优化、导入 配置文件生成 签名打包 Xcode 遇到...

  • Xcode编译原理

    Xcode编译原理 1.xcode 编译的过程 源文件.c --> 编译 --> 目标文件.o --> 链接 --...

  • Xcode 编译过程

    编译过程分为四个步骤 1.预处理(Pre-process) 把宏替换删除注释展开头文件产生 .i 文件 2.编译 ...

  • xcode编译过程

    在 iOS 开发的过程中,Xcode 为我们提供了非常完善的编译能力,正常情况下,我们只需要 Command + ...

  • Xcode的编译过程

    今天我们来对iOS开发的常用工具Xcode的编译流程进行一个简单的了解和分析 OC:source code > C...

  • iOS编译速度提升

    iOS编译速度提升 Xcode编译过程 预编译pch文件(如果有) 编译各种资源文件 copy静态资源 compi...

  • C程序编译过程浅析

    参考:http://blog.csdn.net/koudaidai/article/details/8092647...

  • 2021-10-04 iOS 编译

    应用编译的过程大致为:预处理、编译、汇编、链接等过程。Xcode将这些过程包装为一个Commond+B,其中Xco...

  • iOS面试题整理自用(二)

    聊聊Xcode 中的编译过程 基本的编译过程分为四个步骤:预处理(Pre-process):把宏替换,删除注释,展...

网友评论

本文标题:浅析XCode编译过程

本文链接:https://www.haomeiwen.com/subject/hdrxbttx.html