能否在非Git服务器上托管Swift Package Manager模块并导入其他项目?
能否在非Git服务器上托管SPM模块?
可以,Swift Package Manager(SPM)支持从压缩包(tar/zip)URL导入模块,无需依赖Git服务器,只要你的项目文件能以压缩包形式通过GET请求访问即可。
具体实现步骤:
- 将包含
Package.swift的Swift项目打包成zip或tar.gz格式 - 把压缩包上传到可通过GET访问的服务器,确保能直接通过URL下载完整压缩包
- 在目标项目的
Package.swift中,通过url参数指定压缩包的下载地址,同时配合checksum验证包的完整性:
dependencies: [ .package( url: "https://your-server.com/your-package.zip", checksum: "你的压缩包SHA-256校验值" ) ]
注意事项:
- 必须提供正确的SHA-256校验值,你可以通过
swift package compute-checksum 本地压缩包路径命令生成该值,SPM会自动验证下载的压缩包是否匹配 - 压缩包根目录下必须直接包含
Package.swift,不能嵌套在子文件夹里,否则SPM无法识别 - 如果需要更新包,需重新打包并上传新的压缩包,同时更新目标项目中的URL(若文件名变更)和对应的校验值
内容的提问来源于stack exchange,提问作者Isaaс Weisberg
相关产品推荐
相关产品推荐

