4

我正在尝试使用 swift 包管理器将 SocketIO 安装到我的 swift 4 iOS 项目中。Package.swift 文件如下所示:

// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "MyApp",

    dependencies: [
        .package(url: "https://github.com/socketio/socket.io-client-swift", .upToNextMajor(from: "12.0.0"))
    ]

)

在命令行上,当我键入“swift build”时,会获取包但出现错误:

“警告:没有要在包中构建的目标”

当我尝试在我的应用程序中导入 SocketIO 时,我得到:

“没有这样的模块'SocketIO'”错误。

这是我第一次使用包管理器。只是想知道如何解决这个问题以及我是否需要自己在 Package.swift 文件中添加目标?

不确定我最初是否正确设置了包管理器。还想知道是否有办法卸载并重新安装 Package Manger?或者只是替换项目目录中的 Package.swift 文件的问题。

4

2 回答 2

1

您可以尝试以下方法:

  • 使用.Package代替.package
  • 使用majorVersion: 12, minor: 0代替.upToNextMajor

代码:

import PackageDescription

 let package = Package (
    name: "MyApp",
    dependencies: [
       .Package(url: "https://github.com/socketio/socket.io-client-swift", majorVersion: 12, minor: 0)
    ]
)

输出:

如果成功构建,将创建以下内容:

  • Package.resolved将包含使用的包
  • .build创建隐藏目录,这些将包含构建文件。

测试:

  • 斯威夫特 4.0

参考:

https://swift.org/getting-started/#using-the-package-manager

于 2017-10-02T08:42:30.420 回答
0

我遇到过同样的问题。

我找到了 SPM v4 的文档。

通过这个链接

所以,你应该试试这个:

// 1.0.0 ..< 2.0.0
.package(url: "/SwiftyJSON", from: "1.0.0"),

// 1.2.0 ..< 2.0.0
.package(url: "/SwiftyJSON", from: "1.2.0"),

// 1.5.8 ..< 2.0.0
.package(url: "/SwiftyJSON", from: "1.5.8"),

// 1.5.8 ..< 2.0.0
.package(url: "/SwiftyJSON", .upToNextMajor(from: "1.5.8")),

// 1.5.8 ..< 1.6.0
.package(url: "/SwiftyJSON", .upToNextMinor(from: "1.5.8")),

// 1.5.8
.package(url: "/SwiftyJSON", .exact("1.5.8")),

// Constraint to an arbitrary open range.
.package(url: "/SwiftyJSON", "1.2.3"..<"1.2.6"),

// Constraint to an arbitrary closed range.
.package(url: "/SwiftyJSON", "1.2.3"..."1.2.8"),

// Branch and revision.
.package(url: "/SwiftyJSON", .branch("develop")),
.package(url: "/SwiftyJSON", .revision("e74b07278b926c9ec6f9643455ea00d1ce04a021"))
于 2017-10-10T10:24:33.943 回答