Swift 包管理器 - 无法解析 list

标签 swift manifest swift-package-manager

我正在尝试将 CocoaPod 迁移到 SPM。 它应该非常简单,但由于某种原因,我不断收到错误“无法解析 list 文件”。

库的 repo 可以在这里找到:https://github.com/agcoesbenr/RBSManager/tree/swift-package-manager

// swift-tools-version:5.1
import PackageDescription

let package = Package(
    name: "RBSManager",
    platforms: [
        .iOS(.v10),
    ],
    products: [
        .library(
            name: "RBSManager",
            targets: ["RBSManager"])
    ],
    dependencies: [
        .package(url: "https://github.com/daltoniam/Starscream.git", from: "3.1.1"),
        .package(url: "https://github.com/tristanhimmelman/ObjectMapper.git", from: "4.2")
    ],
    targets: [
        .target(
            name: "RBSManager",
            dependencies: ["Starscream", "ObjectMapper"],
            path: "./RBSManager/Classes")
    ]
)

最佳答案

我不知道你从哪里得到的只有你的错误信息,但它是不完整的。在 Terminal.app 中,如果您执行 $> swift build,您将收到此错误:

$>swift build
/[...]/RBSManager-swift-package-manager: error: manifest parse error(s):
/[...]/RBSManager-swift-package-manager/Package.swift:21:39: error: expected ',' separator
            path: "RBSManager/Classes"
                                      ^
                                      ,
/Users/armel/Downloads/RBSManager-swift-package-manager/Package.swift:22:13: error: argument 'dependencies' must precede argument 'path'
            dependencies: []),

所以一个可能的解决办法是:

targets: [
    .target(
        name: "RBSManager",
        dependencies: [],
        path: "RBSManager",
        sources: ["Classes"])
]

然后,你会遇到另一个错误:

error: manifest parse error(s):
Invalid semantic version string '4.2'

所以 4.2.0 用于 ObjectMapper 实际上在 the repo 中.

我没有完全检查文件是否正确添加到包中,但更多的是解释如何调试和修复问题。 sources/path 我设置的值可能不正确,如果需要我会让你调试那部分。

关于Swift 包管理器 - 无法解析 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70032847/

相关文章:

ios - Xcode 无法生成 Swift UI 预览 - 由于内部错误 : planningFailed,构建中止

ios - viewContext 未保存在数据库中 (app.sqlite)

swift - 防止结合 flatMap 中的自保留循环

尝试制作 facebook 登录应用程序时出现 Android list 错误

manifest - wireguard list 无效

ios - 使用Swift Package Manager时如何导入包的依赖关系?

ios - 如何使用 Swift 使用日期格式化程序设置默认时间?

swift - TokBox: 'consumeFrame' 在使用修改后的像素缓冲区时崩溃

java - 使用 Eclipse 为 JAR 文件自动创建 list 文件

swift - 如何仅使用 Swift 包管理器在调试配置中设置 Swift 包