AWS CodeArtifact 支持 Swift Package Manager
AWS CodeArtifact 现在支持 Swift Package Manager (SwiftPM),此前已经支持 Maven、NuGet、npm、pip 等包管理器。开发者可以使用 Apple 官方包管理器存储和检索 Swift 包,就像使用其他仓库一样。
主要功能
- 发布与下载 Swift 包:开发者可以从 AWS 云中的 CodeArtifact 仓库发布和下载 Swift 包依赖项。
- 兼容现有工具:CodeArtifact SwiftPM 与 Xcode、VSCode 和 Swift Package Manager 命令行工具兼容。
目标用户
CodeArtifact 主要面向希望严格控制项目依赖项的组织。这可能是出于法律或安全考虑。使用私有包仓库(如 AWS CodeArtifact)可以确保所有可用包符合特定的许可证要求,并且包是安全的,不包含可能导致供应链攻击的后门。
开发者的工作流程
使用 AWS CodeArtifact 不会改变开发者的日常工作流程,但需要进行以下三个步骤的设置:
- 获取认证令牌:从 CodeArtifact 获取认证令牌。
- 获取仓库终端节点:获取仓库的终端节点。
- 添加终端节点到 Swift Package Manager:将 CodeArtifact 仓库终端节点添加到 Swift Package Manager。
设置步骤
获取认证令牌:
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token \ --domain stormacq-test \ --domain-owner 012345678912 \ --query authorizationToken \ --output text`获取仓库终端节点:
export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint \ --domain stormacq-test \ --domain-owner 012345678912 \ --format swift \ --repository MySwiftRepo \ --query repositoryEndpoint \ --output text`配置 Swift Package Manager:
可以手动配置 Swift Package Manager,或使用 AWS CLI 提供的命令:aws codeartifact login \ --tool swift \ --domain stormacq-test \ --repository MySwiftRepo \ --namespace aws \ --domain-owner 012345678912
发布包
设置完成后,开发者可以将包发布到仓库。
使用包
包在 AWS CodeArtifact 中可用后,开发者只需在 Package.swift 文件中提供 CodeArtifact URL,就像指定 Git 终端节点一样。
系统要求
- Swift 版本:至少需要 Swift 5.8,这是 macOS 13 (Ventura) 和 Xcode 14 的默认工具链。
- Linux 支持:可以从 Swift.org 下载所需的工具链。
认证令牌有效期
AWS 认证令牌的有效期为 12 小时,因此需要设置 cron 作业定期更新。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。