如何使用 Swift Package Manager,节省千兆字节的网络流量和磁盘空间

你们中的许多人都经历过令人烦恼的情况——您打开一个项目或切换一个分支,然后看到 SPM 如何解析包的悲伤画面。与 SPM 相比,CocoaPods 的优点之一是依赖项检出与项目一起直接存储在存储库中。这使您可以轻松地从任何提交启动项目,而不是在 CI 上浪费时间来下载依赖项并解决它们。在本文中,我将向您展示如何使用 SPM 在存储库中存储依赖项签出,并且比 CocoaPods 做得更好。

在开始之前,让我们定义未来解决方案的要求列表:

  • 我们继续生活在 Swift 包的范式中
  • 外部包依赖变成本地的
  • 需要一种本地克隆外部依赖项的机制
  • 仅在本地存储项目所需的依赖存储库中的文件
  • 有了输入,我们就可以开始实施了。

让我们从克隆依赖项开始。为此,我们将创建一个单独的本地包并将所有必需的依赖项添加到 Package.swift:

// swift-tools-version: 5.7
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "VendorPackages",
    platforms: [
        .iOS(.v15),
        .macOS(.v12),
    ],
    products: [
        .library(
            name: "VendorPackages",
            targets: ["VendorPackages"]
        ),
    ],
    dependencies: [
        .package(
            url: 

猜你喜欢

转载自blog.csdn.net/iCloudEnd/article/details/131652530