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

Swift Package Manager中.package(name:url:)弃用后的报错解决

解决Swift包中Lottie依赖的弃用警告与产品找不到错误

问题本质

带name参数的.package(name:url:from:)语法已被Swift Package Manager废弃,移除name参数后出现产品找不到的错误,核心原因是你引用的Lottie仓库的实际包名和目标依赖中指定的包名不匹配。

分步解决

1. 修正依赖声明

首先更新Package.swift中的依赖声明,移除弃用的name参数。注意:你之前用的lottie-spm.git是Airbnb早期的专用SPM仓库,现在官方主仓库已原生支持SPM,更推荐使用主仓库地址:

// 推荐:使用Lottie官方主仓库
.package(url: "https://github.com/airbnb/lottie-ios.git", from: "4.5.0")

如果坚持使用原仓库,保留原URL即可:

// 兼容原仓库的写法
.package(url: "https://github.com/airbnb/lottie-spm.git", from: "4.5.0")

2. 匹配目标依赖的包名

在你的MyPackage目标的依赖配置中,package参数必须和你引入的仓库的实际包名完全一致:

  • 若使用官方主仓库,包名是lottie-ios:
.target(
    name: "MyPackage",
    dependencies: [
        .product(name: "Lottie", package: "lottie-ios")
    ]
),
  • 若使用原lottie-spm仓库,包名是lottie-spm:
.target(
    name: "MyPackage",
    dependencies: [
        .product(name: "Lottie", package: "lottie-spm")
    ]
),

之前的错误就是因为你可能仍在使用旧的自定义包名Lottie,而非仓库实际的包名。

3. 清理缓存重构建

缓存可能导致依赖识别异常,执行以下命令重置:

swift package clean
swift package update
swift build

排查要点

如果仍有问题,检查:

  • 仓库地址是否可正常访问,版本号4.5.0是否在仓库的已发布标签中
  • 目标依赖中的package参数是否区分大小写(Swift包名是区分大小写的)
  • Xcode是否已刷新依赖(可手动点击Xcode顶部菜单File > Packages > Resolve Package Versions)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:07