06.源代码到IPA
进行编译
生成DSYM文件
储存了16进制的函数地址映射
崩溃日志中的地址通过此文件由地址映射到具体的函数位置
1. 编译
Clang + LLVM
把源代码转换为更为地址的LLVM IR(Intermedia Represention) LLVM根据上面转换的IR进行二进制文件的产出
预处理
处理源文件中的宏定义,将代码中的宏用对应的定义的具体内容进行替换
便已生成IR(中间代码)
汇编器生成汇编代码
生成机器码
链接
生成Image,也就是最后的可执行文件
2. 每次Command+B发生的事情(基于CocoaPod时)
编译信息写入辅助文件,创建.app文件
处理文件打包信息
执行CocoaPod编译前脚本,checkPods Manifest.lock
编译.m文件,使用CompileC和clang命令
链接需要的Framework
编译xib
拷贝xib,资源文件
编译ImageAssets
处理Info.plist
执行CocoaPod脚本
Run custom shell script 'Embed Pods Frameworks'
Run custom shell script 'Copy Pods Resources'
拷贝标准库
创建.app文件和签名
参考
Last updated