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

Swift学习WebSocket时遇Package版本不匹配问题求助

Swift Package依赖iOS最低版本不匹配问题排查与解决

问题场景

学习Swift WebSocket技术时,参考教程构建起始项目,遭遇两个依赖包的平台版本兼容错误:

  • SQLiteKit相关错误:
The package product 'SQLiteNIO' requires minimum platform version 13.0 for the iOS platform, but this target supports 11.0
  • Vapor相关错误:
The package product 'Crypto' requires minimum platform version 13.0 for the iOS platform, but this target supports 11.0

初始Package.swift平台配置:

name: "websocket-backend",
platforms: [
    .macOS(.v10_15)
],

手动添加iOS平台配置后错误依然存在:

platforms: [
    .macOS(.v10_15), .iOS(.v13)
],

解决步骤

1. 为每个Target单独指定平台版本

Package根层级的平台配置不会自动覆盖Target的默认设置,需要给项目的每个Target(包括测试Target)明确指定最低平台版本:

let package = Package(
    name: "websocket-backend",
    platforms: [
        .macOS(.v10_15),
        .iOS(.v13)
    ],
    dependencies: [
        // 你的依赖声明
    ],
    targets: [
        .target(
            name: "websocket-backend",
            platforms: [.iOS(.v13), .macOS(.v10_15)]
        ),
        .testTarget(
            name: "websocket-backendTests",
            dependencies: ["websocket-backend"],
            platforms: [.iOS(.v13), .macOS(.v10_15)]
        )
    ]
)

2. 锁定依赖包兼容版本

如果更新Target配置后仍报错,可能是依赖包版本过新,可尝试指定支持iOS 13+的稳定版本:

dependencies: [
    .package(url: "https://github.com/vapor/sqlite-kit.git", from: "4.26.0"),
    .package(url: "https://github.com/vapor/vapor.git", from: "4.83.0")
]

(注:版本号可根据实际兼容情况调整)

3. 清理缓存重新解析依赖

执行以下命令清理缓存并重新拉取依赖:

swift package clean
swift package resolve

若使用Xcode,可通过File > Packages > Reset Package Caches和File > Packages > Resolve Package Versions操作。

内容的提问来源于stack exchange,提问作者S. S. Saruar Jahan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:05:10