30秒读懂IOS-App的完整启动流程

解析 Info.plist

加载相关信息,例如闪屏。

沙箱(SandBox)建立、权限检查。

Mach-O 加载

如果是胖二进制文件,寻找合适当前 CPU 类别的部分。

加载所有依赖的 Mach-O 文件(递归调用 Mach-O 加载的方法)。

定位内部、外部指针引用,例如字符串、函数等。

执行声明为 __attribute__((constructor)) 的C函数。

加载分类(Category)中的方法。

C++ 静态对象加载、调用 Objc 的 +load 函数。

程序执行

调用 main()

调用 UIApplicationMain()

调用 applicationWillFinishLaunching 代理方法

你可能感兴趣的:(30秒读懂IOS-App的完整启动流程)