ABI Stability and More

  • ABI Stability

    • 在 Run time 下,binary 可多版本相容(在沒有 ABI Stability 之前不行)

    • 有了ABI Stability,Swift Standard Library 就可從以往的 App 層移到 OS

    • 所以打包出來的 ipa 檔更小

    • iOS 12.2 開始

  • Module Stability

    • Swift framework 裡有一個檔案 swiftmodule,用來作為與專案溝通的 interface

    • 以往 swiftmodule 與 Swift 版本相依,所以當專案換 Swift 版本時,其專案使用的 swift framework 必須要用新的 Swift 重新建置,來產生相依的 swiftmodule 檔

    • 有了 Module Stability ,Swift framework 就不需要隨著專案更新Swift版本而重新建置

    • 自己推測:目前 Carthage 就是要做上述的重新建置,推測原因應該就是 swiftmodule 相依 swift 版本

  • Library Evolution

    • 以往當專案的某個 Library 有更新(尤其是 Standard library),整個專案就得重新編譯

    • 有了 Library Evolution,就不需要整個專案重新編譯了,能節省很多時間

Last updated