You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Swift Package Manager包的超出当前依赖规则的版本?

查看Swift Package Manager依赖超出当前规则的可用版本方案

我们的iOS项目采用Swift Package Manager(SPM)管理依赖,版本规则示例为「兼容下一个大版本」(比如Firebase 10.22对应的规则是~> 10.22,仅允许更新到10.x系列的最新版本)。目前使用getSideTrack的GitHub Action更新依赖,其底层调用xcodebuild -resolvePackageDependencies,但该命令只能获取当前依赖规则范围内的更新。需要查看超出当前规则的可用版本,但Renovate和Dependabot均不支持.xcodeproj文件,暂时没有现成的自动化方案。

以下是几种可行的手动/半自动化解决方案:

方法1:导出Xcode项目SPM配置后用官方命令查询

Xcode项目中的SPM依赖配置可以导出为标准的Package.swift文件,之后就能利用SPM自带命令查询全量版本信息:

  1. 进入项目根目录,执行命令导出配置(替换YourProject.xcodeproj为实际项目文件名):
    xcodebuild -exportPackageDescription -project YourProject.xcodeproj -output ./
    
  2. 导出完成后,执行以下命令查看所有依赖的版本状态:
    swift package outdated
    
    该命令会输出每个依赖的三类版本信息:
    • 当前项目使用的版本
    • 符合当前依赖规则的最新兼容版本
    • 仓库已发布的最新版本(即超出当前规则限制的版本)

方法2:直接查询依赖仓库的发布记录

针对单个依赖,可直接访问其代码仓库的Releases页面,查看所有已发布的版本号,对比当前依赖规则判断哪些版本超出范围。如果需要批量处理,可以编写简单脚本,通过对应代码托管平台的API(如GitHub API)拉取所有依赖的版本列表,再与当前规则做批量对比。

方法3:临时修改依赖规则验证最新版本

如果想确认某个依赖的最新版本是否能正常集成,可以临时在Xcode的「Package Dependencies」设置中修改该依赖的版本规则(比如改为「Up to Next Major Version」或直接指定最新版本号),然后执行:

xcodebuild -resolvePackageDependencies

尝试拉取最新版本后,测试项目编译和运行是否正常,确认无误后再正式更新依赖规则。

内容的提问来源于stack exchange,提问作者Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:23:10