Swift Package Manager 项目

Swift Package Manager 是一个用于管理源代码分发的工具,旨在让共享代码和重用他人代码变得容易。该工具直接解决了编译和链接 Swift 包、管理依赖项、版本控制以及支持灵活的分发和协作模型等挑战。

我们将系统设计为可以轻松地在 GitHub 等服务上共享软件包,但软件包也非常适合私人个人开发、团队内部的代码共享或任何其他粒度级别的共享。

Swift Package Manager 包括一个可以为 macOS 和 Linux 构建的构建系统。Xcode 11 与 libSwiftPM 集成,为 iOS、watchOS 和 tvOS 平台提供支持。

SourceKit-LSP 项目利用 libSwiftPM,并为支持 LSP 的编辑器提供语言服务器协议实现。


目录


入门指南

请使用本指南学习 package manager 的基础知识。


文档

如需快速帮助,请使用 swift package --help 命令。

有关使用 Swift Package Manager、创建软件包等的详细文档,请参阅文档

有关开发 Swift Package Manager 本身的更多文档,请参阅Documentation/Development


系统要求

package manager 的系统要求与 Swift 的系统要求相同,但需要注意的是,package manager 在运行时和构建时都需要 Git。


安装

Swift Package Manager 包含在 Xcode 8.0 及所有后续版本中。

package manager 也可用于其他平台,作为 swift.org 提供的所有快照的一部分,包括从 master 构建的最新版本的快照。有关下载快照的安装说明,请参阅 swift.org 的“入门指南”部分。

您可以通过在终端中输入 swift package --version 来验证您的安装

$ swift package --version
Apple Swift Package Manager - ...

管理 Swift 环境

在 macOS 上,/usr/bin/swift 只是一个将调用转发到活动工具链的存根。因此,当您调用 swift build 时,它将使用您的 TOOLCHAINS 环境变量定义的 swift。这可以用于轻松地在默认工具和开发快照之间切换

$ xcrun --find swift
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
$ swift --version
Apple Swift version 3.0
$ export TOOLCHAINS=swift
$ xcrun --find swift
/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/swift
$ swift --version
Swift version 3.0-dev

要使用特定的工具链,您可以将 TOOLCHAINS 设置为 .xctoolchain 的 Info.plist 中的 CFBundleIdentifier

选择 Swift 版本

SWIFT_EXEC 环境变量指定 swift package 使用的 swiftc 可执行文件路径。如果未设置,package manager 将尝试定位它

  1. swift-package 的父目录中。
  2. 在 macOS 上,通过调用 xcrun --find swiftc
  3. 通过搜索 PATH。

支持

如果您在使用 package manager 时遇到任何问题,可以获得帮助。我们推荐

当向跟踪器添加 bug 时,您应该遵循 bug 报告指南,它们可以在Resources.md 中找到。

如果您不方便在列表中分享您的问题,可以在 CODEOWNERS 中找到代码所有者的联系方式;但是,邮件列表通常是寻求帮助的最佳场所。


贡献

要了解管理 Swift 项目贡献的政策和最佳实践,请阅读贡献者指南

如果您有兴趣贡献,请阅读社区提案,其中为当前实现中所做的决策提供了一些背景信息,并为未来功能的发展提供了方向。

有关设置开发环境的说明,请点击此处

Swift package manager 使用 llbuild 作为编译源文件的底层构建系统。它也是开源的,并且是 Swift 项目的一部分。


许可证

版权所有 2015 - 2019 Apple Inc. 和 Swift 项目作者。根据 Apache License v2.0 许可,并包含运行时库例外。

有关许可证信息,请参阅 https://swiftlang.cn/LICENSE.txt

有关 Swift 项目作者的信息,请参阅 https://swiftlang.cn/CONTRIBUTORS.txt