<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>2 构建包 on 编程那些事儿</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/</link><description>Recent content in 2 构建包 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 13 Sep 2026 18:20:56 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/index.xml" rel="self" type="application/rss+xml"/><item><title>2.1 创建 Swift 包</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.1-CreatingSwiftPackage/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.1-CreatingSwiftPackage/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/creatingswiftpackage/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/creatingswiftpackage/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="21-创建-swift-包"&gt;2.1 创建 Swift 包&lt;/h1&gt;
&lt;p&gt;把可执行代码或可共享的代码打包成一个独立的 Swift 包。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;Swift 包是一个目录，其中包含源代码、依赖，并且根目录下有一个 &lt;code&gt;Package.swift&lt;/code&gt; 清单文件。Swift 包可以提供库、可执行文件、测试、插件和宏。包清单定义了包里有什么，它本身也是用 Swift 编写的。&lt;a href="https://developer.apple.com/documentation/packagedescription"&gt;PackageDescription 的 API 参考&lt;/a&gt;定义了组装包清单时用到的类型、属性和函数。&lt;/p&gt;</description></item><item><title>2.2 设置 Swift 工具版本</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.2-SettingSwiftToolsVersion/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.2-SettingSwiftToolsVersion/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/settingswifttoolsversion/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/settingswifttoolsversion/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="22-设置-swift-工具版本"&gt;2.2 设置 Swift 工具版本&lt;/h1&gt;
&lt;p&gt;定义使用你的包所需的 Swift 编译器最低版本。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;工具版本声明使用该包所需的 Swift 编译器最低版本，并决定如何解析 &lt;code&gt;Package.swift&lt;/code&gt; 清单。当你用 &lt;a href="../../swiftcommands/7.3-SwiftPackageCommands/7.3.1-PackageInit/"&gt;swift package init&lt;/a&gt; 创建新包时，最低版本会自动设为当前版本。该版本通过注释 &lt;code&gt;// swift-tools-version:&lt;/code&gt; 加上 Swift 编译器版本号来指定。按照惯例，这条注释出现在清单的第一行；当指定的版本早于 6.0 时它必须如此；从 Swift 6.0 起，它也可以出现在后面的行上，例如在前导注释之后。版本号是语义化版本，唯一例外是：如果你不写补丁版本，它就推断为 &lt;code&gt;0&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>2.3 使用构建配置</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.3-UsingBuildConfigurations/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.3-UsingBuildConfigurations/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/usingbuildconfigurations/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/usingbuildconfigurations/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="23-使用构建配置"&gt;2.3 使用构建配置&lt;/h1&gt;
&lt;p&gt;控制应用或包的构建配置。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;包管理器支持两种通用的构建配置：Debug（默认）和 Release。&lt;/p&gt;
&lt;h3 id="Debug"&gt;Debug&lt;/h3&gt;
&lt;p&gt;默认情况下，运行 &lt;code&gt;swift build&lt;/code&gt; 会使用调试配置构建包；你也可以显式使用 &lt;code&gt;swift build -c debug&lt;/code&gt;。包管理器把构建产物放在 &lt;code&gt;.build&lt;/code&gt; 文件夹下名为 &lt;code&gt;debug&lt;/code&gt; 的目录中。以调试配置构建时，Swift 目标使用下列 Swift 编译器标志：&lt;/p&gt;</description></item><item><title>2.4 按 Swift 版本打包</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.4-SwiftVersionSpecificPackaging/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.4-SwiftVersionSpecificPackaging/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/swiftversionspecificpackaging/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/swiftversionspecificpackaging/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="24-按-swift-版本打包"&gt;2.4 按 Swift 版本打包&lt;/h1&gt;
&lt;p&gt;为特定 Swift 版本提供包清单。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;包管理器支持同时适配多种版本的包：既包括语言版本，也包括提供包管理器的 Swift 工具链版本。&lt;/p&gt;
&lt;p&gt;对于与语言相关的版本检查，请使用源代码中可用的语言版本检查。不过在某些情况下，这种做法会变得难以维护，特别是当包清单无法与版本无关时——例如你在包清单中采用了旧版本不具备的新特性。&lt;/p&gt;</description></item><item><title>2.5 为 Swift 包打包资源</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.5-BundlingResources/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.5-BundlingResources/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/bundlingresources/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/bundlingresources/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="25-为-swift-包打包资源"&gt;2.5 为 Swift 包打包资源&lt;/h1&gt;
&lt;p&gt;把资源文件加入 Swift 包，并在代码中访问它们。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;如果你在 &lt;code&gt;Package.swift&lt;/code&gt; 文件中声明了 &lt;code&gt;// swift-tools-version: 5.3&lt;/code&gt; 或更高版本，就可以在 Swift 包中把资源与源代码一起打包。例如，Swift 包可以包含资源目录（asset catalog）、测试夹具等。&lt;/p&gt;</description></item><item><title>2.6 发布与公开 Swift 包</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.6-ReleasingPublishingAPackage/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.6-ReleasingPublishingAPackage/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/releasingpublishingapackage/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/releasingpublishingapackage/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="26-发布与公开-swift-包"&gt;2.6 发布与公开 Swift 包&lt;/h1&gt;
&lt;p&gt;共享你包的某个特定版本。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;Swift Package Manager 期望包以一个 Git 仓库的形式远程共享，带有一个符合完整语义化版本的标签，并在仓库根目录下有一个 &lt;code&gt;Package.swift&lt;/code&gt; 清单。&lt;/p&gt;</description></item><item><title>2.7 生成软件物料清单（SBOM）</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.7-GeneratingSBOMs/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.7-GeneratingSBOMs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/generatingsboms/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/generatingsboms/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="27-生成软件物料清单sbom"&gt;2.7 生成软件物料清单（SBOM）&lt;/h1&gt;
&lt;p&gt;用 SBOM 文档列出组件与依赖的清单。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;Swift Package Manager 可以为 Swift 包和产品生成软件物料清单（SBOM）文档。&lt;/p&gt;
&lt;p&gt;目前 Swift Package Manager 支持两种 SBOM 格式：CycloneDX 和 SPDX。&lt;/p&gt;</description></item><item><title>2.8 持续集成工作流</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.8-ContinuousIntegration/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.8-ContinuousIntegration/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/continuousintegration/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/continuousintegration/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="28-持续集成工作流"&gt;2.8 持续集成工作流&lt;/h1&gt;
&lt;p&gt;使用既有的持续集成环境构建 Swift 包，并在既有的 CI 流水线中为使用包依赖的应用做好准备。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;持续集成&lt;/em&gt;（&lt;em&gt;CI&lt;/em&gt;）是自动化并简化应用的构建、分析、测试、归档和发布的过程，以确保应用始终处于可发布状态。大多数包含 Swift 包或依赖 Swift 包的项目都不需要额外配置。&lt;/p&gt;</description></item><item><title>2.9 使用 shell 补全脚本</title><link>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.9-UsingShellCompletion/</link><pubDate>Fri, 11 Sep 2026 21:45:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/SwiftPM/buildingpackages/2.9-UsingShellCompletion/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://docs.swift.org/latest/documentation/packagemanagerdocs/usingshellcompletion/"&gt;https://docs.swift.org/latest/documentation/packagemanagerdocs/usingshellcompletion/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="29-使用-shell-补全脚本"&gt;2.9 使用 shell 补全脚本&lt;/h1&gt;
&lt;p&gt;定制你的 shell，让它自动补全 swift package 命令。&lt;/p&gt;
&lt;h2 id="Overview"&gt;概述&lt;/h2&gt;
&lt;p&gt;包管理器自带 Bash、Zsh 和 Fish 的补全脚本。为你的 shell 生成补全列表即可使用。&lt;/p&gt;</description></item></channel></rss>