9.1.3 SwiftPM 5.9 发布说明
2 分钟阅读
原文链接: https://docs.swift.org/latest/documentation/packagemanagerdocs/5.9/
9.1.3 SwiftPM 5.9 发布说明
交叉编译
SwiftPM 现在支持基于 Swift SDK bundle 格式的交叉编译。虽然这项特性仍被视为实验性的,但我们邀请用户试用并提供反馈。
包注册表
SwiftPM 现在可以按照 SE-0391 中定义的规范发布到注册表,并支持注册表可能要求的已签名包。首次使用即信任(TOFU)校验现在除了指纹之外还可以使用签名身份,并且对源代码归档和包清单文件都强制执行。
内嵌资源
对新的 .embedInCode 资源规则提供了基本支持,它通过生成字节数组把资源内容嵌入到可执行代码中
struct PackageResources {
static let best_txt: [UInt8] = [104,101,108,108,111,32,119,111,114,108,100,10]
}
其他改进
CompilerPluginSupport 模块使定义宏目标成为可能。宏目标允许把自定义 Swift 宏作为库中的 API 来编写和分发。
包可以使用新的 package 访问修饰符,从而访问同一包中另一个目标/模块里的符号,而不必把它们公开。SwiftPM 会自动设置新的编译器配置,确保这项特性对包开箱即用。
allowNetworkConnections(scope:reason:) 设置赋予命令插件访问网络的权限。权限的作用域可以是 Unix 域套接字,也可以是本地或远程 IP 连接,并可以选择按端口限制。对于非交互式使用场景,--allow-network-connections 命令行标志可以为特定作用域允许网络连接。
当包只包含单个目标时,源代码可以放在 ./Sources 目录下的任意位置。如果源码放在 ./Sources/<target> 下的子目录中,或者包中有多个目标,则沿用现有的源码位置预期
构建工具插件可以与 C 系列语言目标一起使用