Swift高级分享 - 使用Swift Package Manager管理依赖项

当Swift于2015年底开源时,随之而来的最令人惊讶和最有趣的新项目之一是Swift Package Manager。虽然它不是Swift项目的第一个依赖管理器,但它是第一个由Apple正式提供和支持的,许多开发人员认为这是一个非常好的消息。然而,虽然服务器端Swift社区迅速采用Swift Package Manager作为构建服务器应用程序时管理依赖关系的首选工具,但它需要花费很长时间才能...
摘要由CSDN通过智能技术生成

当Swift于2015年底开源时,随之而来的最令人惊讶和最有趣的新项目之一是Swift Package Manager。虽然它不是Swift项目的第一个依赖管理器,但它是第一个由Apple正式提供和支持的,许多开发人员认为这是一个非常好的消息。

然而,虽然服务器端Swift社区迅速采用Swift Package Manager作为构建服务器应用程序时管理依赖关系的首选工具,但它需要花费很长时间才能完全集成到Apple的其他开发人员工具链中。

但是现在,从Xcode 11开始,Swift Package Manager终于成为Apple开发人员工具套件中真正的一流公民 - 所以本周,我们来看看如何使用它来管理项目的各种依赖 - 内部和外部的。

Swift包的解剖结构

夫特封装基本上是一组被编译在一起以形成夫特源文件模块 -其然后可以共享和导入其他项目为一个单元。包可以是使用GitHub等服务共享的公共库,也可以是仅在少数项目中共享的内部工具和框架。

使用Package.swift 清单文件声明包的内容,清单文件放在每个包的根目录中。Swift包清单文件不是使用JSON或XML等数据格式,而是使用实际的Swift代码编写的 - 使用Package实例表示包的声明。

举个例子,假设我们正在研究todo列表应用程序,并且我们想要为TodoKit应用程序中共享的所有核心逻辑创建一个包 - 包括我们的数据库层,模型代码等等。上。首先,我们将创建一个新文件夹(名称与我们希望调用包的名称相匹配),然后我们将swift package init在其中运行以创建我们的包:

$ mkdir TodoKit
$ cd TodoKit
$ swift package init

在Xcode 11中,我们还可以使用File > New > Swift Packagemenu命令执行上述设置。

通过执行上述操作,Swift Package Manager现在将为我们的新包创建一个初始结构 - 其中包含一个Package.swift类似于以下内容的清单文件:

// swift-tools-version:5.1

import PackageDescription

let package = Package(
    name: "TodoKit",
    products: [
        // The external product of our package is an importable
        // library that has the same name as the package itself:
        .library(
            name: "TodoKit",
            targets: ["TodoKit"]
        )
    ],
    targets: [
        // Our package contains two targets, one for our library
        // code, and one for our tests:
        .target(name: "TodoKit"),
        .test
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值