9.1.4 SwiftPM 5.8 发布说明
2 分钟阅读
原文链接: https://docs.swift.org/latest/documentation/packagemanagerdocs/5.8/
9.1.4 SwiftPM 5.8 发布说明
包清单的变化
SwiftPM 目标现在可以指定它们所要求的即将推出的语言特性。Package.swift 清单语法新增了 API,可以在目标级别设置 enableUpcomingFeature 和 enableExperimentalFeature 标志,如 SE-0362 所规定。
SwiftPM 现在允许暴露一个仅由 artifact bundle 支撑的二进制目标构成的可执行产品。这样就能把二进制可执行文件作为独立的包单独分发,而独立于使用它们的插件。
在使用 5.8 或更高工具版本的包中,Foundation 不再被隐式导入到包清单中。如果要用 Foundation API,需要显式导入该模块。
包注册表支持
SwiftPM 现在在与包注册表交互时支持令牌认证。swift package-registry 命令新增了两个子命令 login 和 logout,它们按 SE-0378 的定义用于添加/移除注册表凭据。
其他改进
改进了离线行为的处理:当磁盘上的每个包缓存或共享缓存中存在兼容的依赖版本时,SwiftPM 会检查网络可用状态,以决定是否尝试更新某个已检出的依赖版本;在离线时会直接使用缓存的版本而不更新。
build、test 和 run 命令新增了 --pkg-config-path 选项,作为传递 PKG_CONFIG_PATH 环境变量的替代方案。它允许指定搜索 pkg-config 所用 .pc 文件的替代路径。可以多次使用这个选项来指定多个路径。
通过 swift package dump-symbol-graph 新增了 --emit-extension-block-symbols 和 --omit-extension-block-symbols。--emit-extension-block-symbols 会输出采用扩展块符号格式的符号图文件。默认行为不变。等到将来默认行为改为 --emit-extension-block-symbols 之后,可以用 --omit-extension-block-symbols 标志显式禁用该特性。