iOS包依賴管理工具(六):CocoaPods VS SPM 總結(jié)篇

一、前言

我們通過幾篇文章,分別介紹了 Pods 和 SPM 如何使用,以及如何制作自己的庫,本篇內(nèi)容不多,只給出兩者的對比分析。

二、中心化 VS 去中心化

相信大家都聽過中心化這個(gè)詞,通俗易懂的來講,就是『(資源)集中式管理』:

  • CocoaPods 是中心化的,因?yàn)樗械馁Y源索引都集中在一個(gè)倉庫中(下圖 Master Repo 就代表 Pods);
中心化.png
  • SPM 則是去中心化的,需要啥資源就自己去對應(yīng)的倉庫中下載;
去中心化.png

三、對比分析

\ CocoaPods SPM
適用語言 \color{green}{OC、Swift} \color{orange}{Swift/OC/C/CXX}
支持庫 \color{green}{大部分支持} \color{orange}{部分支持}
使用復(fù)雜度 \color{orange}{中等} \color{green}{簡單}
項(xiàng)目入侵 \color{red}{嚴(yán)重} \color{green}{無}
源碼可見 \color{red}{可見} \color{red}{可見}
編譯速度 \color{red}{慢} \color{orange}{首次較慢}

不過,隨著蘋果不斷向 Swift 傾斜,第三方的 Swift 版本庫也會越來越多,而且,制作一個(gè) SPM 庫非常簡單,只需定義好 Package.swift 即可;同時(shí),蘋果也在不斷改進(jìn) SPM,相信不久大家新的項(xiàng)目都會用上 SPM。

補(bǔ)充

SPM 從 5.3 版本開始,支持資源的打包,原文鏈接:傳送門 5.3 ReleaseNotes

5.3 的改進(jìn)主要有:

  1. 支持發(fā)布的包可以指定【不同的平臺依賴】;
  2. 支持資源文件的打包:圖片、文件、storyboard、xib 及其它文件
  3. 支持二進(jìn)制(非源碼級)依賴


SPM 5.0 開始也支持 C 和 CXX 語言:PackageDescription API

public enum CLanguageStandard {
    case c89
    case c90
    case iso9899_1990
    case iso9899_199409
    case gnu89
    case gnu90
    case c99
    case iso9899_1999
    case gnu99
    case c11
    case iso9899_2011
    case gnu11
}

public enum CXXLanguageStandard {
    case cxx98 = "c++98"
    case cxx03 = "c++03"
    case gnucxx98 = "gnu++98"
    case gnucxx03 = "gnu++03"
    case cxx11 = "c++11"
    case gnucxx11 = "gnu++11"
    case cxx14 = "c++14"
    case gnucxx14 = "gnu++14"
    case cxx1z = "c++1z"
    case gnucxx1z = "gnu++1z"
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容