iOS App 的完整啟動過程

Se7en丶秦發表於2017-12-21
  • 解析 Info.plist
    • 載入相關資訊,例如閃屏。
    • 沙箱(SandBox)建立、許可權檢查。
  • Mach-O 載入
    • 如果是胖二進位制檔案,尋找合適當前 CPU 類別的部分。
    • 載入所有依賴的 Mach-O 檔案(遞迴呼叫 Mach-O 載入的方法)。
    • 定位內部、外部指標引用,例如字串、函式等。
    • 執行宣告為 __attribute__((constructor)) 的C函式。
    • 載入分類(Category)中的方法。
    • C++ 靜態物件載入、呼叫 Objc 的 +load 函式。
  • 程式執行
    • 呼叫 main()
    • 呼叫 UIApplicationMain()
    • 呼叫 applicationWillFinishLaunching 代理方法

相關文章