Swift 包管理器提供了一个基于约定的系统,用于 构建库和可执行文件,并在不同的包之间共享代码。

这些示例假定您已在路径中可用; 有关详细信息,请参阅 安装 。 一旦可用,您可以调用包管理器工具:、 和 。 swift swift package swift run swift build swift test

            

创建包

要创建新的 Swift 包,请首先创建并输入一个名为 的目录: Hello

每个包都必须在其根目录中调用一个清单文件。 您可以使用以下命令创建名为的最小包: Package.swift Hello

默认情况下,init 命令将创建一个库包目录结构:

您可以使用 构建包。这将下载、解析和编译提到的依赖项 在清单文件中。 swift build Package.swift

若要运行包的测试,请使用: swift test

构建可执行文件

如果目标包含名为 的文件,则将其视为可执行文件。 包管理器会将该文件编译为二进制可执行文件。 main.swift

在此示例中, 该包将生成一个名为“Hello, world! Hello

首先创建并输入一个名为 的目录: Hello

            

现在使用可执行类型运行 swift 包的 init 命令:

使用以下命令生成并运行可执行文件: swift run

注意:由于此包中只有一个可执行文件,因此我们可以省略 命令中的可执行文件名称。 swift run

您还可以通过运行命令来编译包,然后运行 来自 .build 目录的二进制文件: swift build

下一步,让我们定义一个新函数 在新的源文件中,并让可执行文件调用 而不是直接打电话。 sayHello(name:) print(_:)

使用多个源文件

在目录中创建一个名为 的新文件 , 并输入以下代码: Sources/Hello Greeter.swift

该函数采用单个参数 并打印了我们之前的“你好”问候语,替换了“世界”一词 使用函数参数。 sayHello(name:) String

现在,再次打开,并将现有内容替换为以下代码: main.swift

现在不再像以前那样使用硬编码的名称,而是从命令行参数读取。 现在不是直接调用,而是调用该方法。 由于该方法是模块的一部分, 无需声明。 main.swift print(_:) main.swift sayHello(name:) Hello import

运行并试用新版本的: swift run Hello


要了解 Swift Package Manager, 包括如何构建模块、导入依赖项和映射系统库, 请参阅网站的  Swift Package Manager  部分。

要了解有关包插件的更多信息,请参阅 插件入门