文章

为您的 App 添加软件包依赖项

整合软件包依赖项,以在项目之间共享代码或利用其他开发者编写的代码。

概览

Xcode 内置了源代码控制帐户支持,可以轻松地利用适用的 Swift 软件包。使用 Xcode 可以管理软件包依赖项的版本,确保您的项目拥有最新的代码更改。

添加软件包依赖项

要将软件包依赖项添加到您的 Xcode 项目中,请选择“File”(文件) >“Swift Packages”(Swift 软件包) >“Add Package Dependency”(添加软件包依赖项),然后输入其储存库 URL。您也可以前往目标的“General”(通用) 面板,然后在“Frameworks, Libraries, and Embedded Content”(框架、资源库和嵌入式内容) 部分中点按“+”按钮。在“Choose frameworks and libraries to add”(选取要添加的框架和资源库) 对话框中,选择“Add Other”(添加其他),然后选取“Add Package Dependency”(添加软件包依赖项)。

截屏中显示了用于添加内容到“Frameworks, Libraries, and Embedded Content”(框架、资源库和嵌入式内容) 的对话框,其中已选中“Add Package Dependency”(添加软件包依赖项)。

除了添加储存库 URL 外,您可以在 GitHub (英文)GitHub Enterprise (英文) 中搜索软件包。在 Xcode 的偏好设置中添加您的 GitHub (英文)GitHub Enterprise (英文) 帐户,这样在您键入时就会显示一个软件包储存库列表。以下截屏显示了搜索 ExamplePackage 这个词语时出现的储存库列表。

截屏显示了用于添加软件包依赖项的对话框。用户已在搜索栏中输入了 ExamplePackage。

当您在 Xcode 的偏好设置中添加了源代码控制帐户后,如果搜索栏为空,列表中会包含以下几项:

决定软件包要求

输入软件包依赖项的 URL 或从软件包列表中选择 Swift 软件包后,请从三个软件包要求中选择一个。软件包要求决定您的项目中允许的软件包依赖项版本,并且 Xcode 会根据您选择的要求来更新软件包依赖项。

版本

决定您的项目是在下个主要版本还是下个次要版本之前一直接受软件包依赖项更新。要让限制更加严格,请选择一个具体的版本范围或确切的版本。与次要版本相比,主要版本一般含有更多的重大变更,更新时可能需要您修改代码。版本规则要求 Swift 软件包遵循语义版本管理。要进一步了解语义版本管理标准,请访问 semver.org (英文)

选择版本要求是添加软件包依赖项的推荐方式。这种方式能让您在限制更改和获取改进和功能之间取得平衡。

分支

选择您的软件包依赖项要遵从的分支名称。如果您要连续开发多个软件包,并且不想发布多个版本的软件包依赖项,您可以使用基于分支的依赖项。

提交

选择您的软件包依赖项要遵从的提交哈希。不建议选择这个选项,您应仅在例外情形中使用该选项。尽管将软件包依赖项固定到特定提交可以确保软件包依赖项不会改变且让代码保持稳定,但您不会收到任何更新。如果您担心远程软件包的稳定性,不妨考虑其中一个基于版本且限制性更强的要求选项。

在选择软件包要求后,Xcode 会解析并获取软件包依赖项。选择您需要的软件包产品,并将它们添加到您项目的特定目标中。

在 Xcode 边栏中,“Swift Package Dependencies”(Swift 软件包依赖项) 部分中将会显示新添加的软件包。点按展开三角形可查看该软件包在您的 Mac 上的内容。

编辑软件包依赖项

您无法直接编辑软件包依赖项的内容。如果您想要更改软件包依赖项的内容,需要将它作为“本地软件包”添加到您的项目中。请参阅“编辑作为本地软件包的软件包依赖项”,以了解如何用本地软件包覆盖软件包依赖项来进行编辑。

在团队内协调软件包版本

在进行项目协作时,请确保所有人都使用同一版本的软件包依赖项。当您将软件包依赖项添加到项目时,Xcode 会创建对应的 Package.resolved 文件。该文件会列出每个软件包依赖项解析的具体 Git 提交。在 Git 中提交这个文件,以确保所有人都使用同一版本的软件包依赖项。

删除软件包依赖项

如果您需要从 Xcode 项目中移除软件包依赖项,请在设置中前往“Swift Packages”(Swift 软件包) 面板,然后从软件包列表中选择相应的 Swift 软件包。点按“-”按钮,以移除选定的软件包依赖项。

截屏中显示了移除软件包依赖项时出现的确认对话框。

另请参阅

软件包依赖项

构建在持续集成工作流程中使用 Swift 软件包的 App (英文)

做好准备,让 app 在现有的持续集成设置中使用软件包依赖项。