在Xcode中无法找到已发布到AWS CodeArtifact的Swift包求助
Swift包发布到AWS CodeArtifact后Xcode无法找到的问题
背景
- 在AWS CodeArtifact创建了名为
artifactsRepo的仓库 - 未配置本地AWS CLI,通过手动方式使用获取的认证令牌和仓库端点完成Swift包仓库配置
- 本地待发布的Swift包名为
SimplePackage
已执行操作及结果
- 进入
SimplePackage文件夹,执行登录命令:
swift package-registry login {artifactsrepourl}/login --token {auth token}
命令执行成功,返回:
Login successful.
Credentials have been saved to the operating system's secure credential store.
Registry configuration updated.
- 查看注册表配置文件
.swiftpm/configuration/registries.json,内容如下:
{ "authentication" : { }, "registries" : { "[default]" : { "supportsAvailability" : false, "url" : "{mycodeartifactrepourl}" } }, "version" : 1 }
- 执行默认注册表设置命令:
swift package-registry set {mycodeartifactrepo}
- 执行包发布命令:
swift package-registry publish myScope.SimplePackage 1.0.0
该命令无任何输出直接结束。查看CodeArtifact仓库的对应版本文件夹,已生成Package.swift文件和归档.zip文件,推测发布操作完成,但不确定.zip文件是否完整。
当前问题
在Xcode项目的添加依赖对话框中输入myScope.SimplePackage,无法搜索到该包。
排查方向
- 验证CodeArtifact包元数据:检查CodeArtifact中该包的元数据是否完整,确认
myScope.SimplePackage的标识符与发布时完全一致。 - 配置Xcode的Swift包注册表:Xcode可能未自动读取SwiftPM的全局配置,需手动添加:
- 打开Xcode偏好设置 → 账户 → 点击左下角
+→ 选择Swift Package Registry - 输入CodeArtifact仓库的端点URL和有效认证令牌完成配置
- 打开Xcode偏好设置 → 账户 → 点击左下角
- 检查归档文件完整性:下载CodeArtifact中的.zip文件,解压后确认包含完整的Swift包结构(如Sources目录、Package.swift等),确保符合Swift Package规范。
- 确认权限设置:确保用于Xcode访问CodeArtifact的身份(或认证令牌)拥有仓库的
Read权限,避免因权限不足无法拉取包信息。 - 用Swift CLI测试拉取:在终端执行
swift package show myScope.SimplePackage,若CLI能获取到包信息但Xcode不行,重点排查Xcode的配置或缓存问题。
内容的提问来源于stack exchange,提问作者Gypsa
相关产品推荐
相关产品推荐

