美文网首页
iOS包依赖管理工具(六):CocoaPods VS SPM 总

iOS包依赖管理工具(六):CocoaPods VS SPM 总

作者: 青叶小小 | 来源:发表于2021-03-05 00:28 被阅读0次

一、前言

我们通过几篇文章,分别介绍了 Pods 和 SPM 如何使用,以及如何制作自己的库,本篇内容不多,只给出两者的对比分析。

二、中心化 VS 去中心化

相信大家都听过中心化这个词,通俗易懂的来讲,就是『(资源)集中式管理』:

  • CocoaPods 是中心化的,因为所有的资源索引都集中在一个仓库中(下图 Master Repo 就代表 Pods);
中心化.png
  • SPM 则是去中心化的,需要啥资源就自己去对应的仓库中下载;
去中心化.png

三、对比分析

\ CocoaPods SPM
适用语言 \color{green}{OC、Swift} \color{orange}{Swift/OC/C/CXX}
支持库 \color{green}{大部分支持} \color{orange}{部分支持}
使用复杂度 \color{orange}{中等} \color{green}{简单}
项目入侵 \color{red}{严重} \color{green}{无}
源码可见 \color{red}{可见} \color{red}{可见}
编译速度 \color{red}{慢} \color{orange}{首次较慢}

不过,随着苹果不断向 Swift 倾斜,第三方的 Swift 版本库也会越来越多,而且,制作一个 SPM 库非常简单,只需定义好 Package.swift 即可;同时,苹果也在不断改进 SPM,相信不久大家新的项目都会用上 SPM。

补充

SPM 从 5.3 版本开始,支持资源的打包,原文链接:传送门 5.3 ReleaseNotes

5.3 的改进主要有:

  1. 支持发布的包可以指定【不同的平台依赖】;
  2. 支持资源文件的打包:图片、文件、storyboard、xib 及其它文件
  3. 支持二进制(非源码级)依赖

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"
}

相关文章

  • iOS包依赖管理工具(六):CocoaPods VS SPM 总

    一、前言 我们通过几篇文章,分别介绍了 Pods 和 SPM 如何使用,以及如何制作自己的库,本篇内容不多,只给出...

  • CocoaPods使用

    原文链接 CocoaPods简介 CocoaPods是iOS开发、macOS开发中的包依赖管理工具,效果如Java...

  • CocoaPods使用

    CocoaPods简介 CocoaPods是iOS开发、macOS开发中的包依赖管理工具,效果如Java中的Mav...

  • iOS之-CocoaPods安装使用详细

    一、CocoaPods简介CocoaPods是iOS开发、macOS开发中的包依赖管理工具,效果如Java中的Ma...

  • Cocoapods

    什么是Cocoapods CocoaPods是iOS项目的依赖管理工具 国内安装Cocoapods $ gem s...

  • iOS Cocoapod 集成

    CocoaPods简介: CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS...

  • cocoapods---使用篇

    一、什么是CocoaPods 1、什么是CocoaPods CocoaPods是iOS中的依赖管理工具。 2、Co...

  • 学习笔记 - CocoaPods 安装

    CocoaPods的安装使用 一 什么是CocoaPods? cocoapod是iOS项目的依赖管理工具,该项目源...

  • 关于Cocoapods的理解

    cocoapods是ios开发中用的 依赖库管理工具; 准备工作: mac环境;安装ruby,cocoapods依...

  • iOS开发工具 --- CocoaPods

    一、CocoaPods简介 CocoaPods是专门为iOS工程提供第三方依赖库的管理工具,通过CocoaPods...

网友评论

      本文标题:iOS包依赖管理工具(六):CocoaPods VS SPM 总

      本文链接:https://www.haomeiwen.com/subject/rldqqltx.html