APP在command + R/B 编译的流程 prebuild -> 加载cocoapods里面依赖的文件 -> 生成静态库static library , 及文件框架 -> 执行cocoapos编译前脚本 checkPods mainfeast -> 编译工程.m文件 -> link关联的frame库 -> 编译.xib -> copy xib,图片等资源文件 -> 编译imageAsserts -> 处理 info.plist -> 执行cocoapods 脚本 -> copy标准库 -> 创建.app文件 和签名
编译.m文件过程: 预处理,添加对应宏定义 -> 语法分析 -> 词法分析 ->语义分析 -> IR中间码 不同语言在中间层转换 -> 优化中间吗pass -> LLVM Bitcode 生成字节码 链接器优化 -> 生成汇编代码 -> 链接器连接处可执行文件Image镜像
参考: https://blog.csdn.net/Deft_MKJing/article/details/82929014
cocoapods原理?
APP启动的快慢,直接决定了用户的体验好坏,毕竟往往第一印象是真的很重要的!
APP启动分为三个阶段:main函数执行前,main函数执行后,首屏渲染完成后.
main启动前:
首先说下Mach-O文件
Mach-O文件格式是OSX与iOS系统上的可执行文件
mach-o主要分为三部分: