[英]Adding a dependency using Swift Package Manager
我正在尝试将Socket.IO添加到我的Xcode项目中。 我是Swift Package Manager的新手( 在哪里可以将代码放入项目中的日子 )
我创建了一个Package.swift
包含下列内容的文件描述在这里
import PackageDescription
let package = Package(
name: "socket.io-test",
products: [
.executable(name: "socket.io-test", targets: ["MyTarget"])
],
dependencies: [
.package(url: "https://github.com/socketio/socket.io-client-swift", .upToNextMinor(from: "14.0.0"))
],
targets: [
.target(name: "MyTarget", dependencies: ["SocketIO"], path: "./My/Target/Path/")
]
)
然后,我打开终端并导航到包含项目和Package.swift
文件的文件夹。 (我假设它应该在我的项目文件夹中)
然后,我运行以下命令:
swift package resolve
这产生了以下错误:
错误:清单分析错误:错误:参数“目标”必须在参数“依赖项”目标之前:[~~~~ ^ ~~~~~~~~~
因此,按照错误给出的指令,我将“目标”移到了依赖项之上。
我再次运行该命令,然后收到以下错误:
错误:清单分析错误:错误:调用中的参数标签不正确(具有“名称:产品:目标:依赖关系:”,预期的“名称:pkgConfig:目标:依赖关系:”)let package = Package(^
由于从github页面获取的原始示例没有这样的标签设置,因此每次尝试添加包管理器建议的内容时,我都将代码更改为以下内容(将一个参数放在另一个参数之前,添加其他参数):
import PackageDescription
let package = Package(
name: "socket.io-test",
pkgConfig: nil,
providers: nil,
targets: [
.target(name: "MyTarget", dependencies: ["SocketIO"], path: "./My/Target/Path/")
],
dependencies: [
.package(url: "https://github.com/socketio/socket.io-client-swift", .upToNextMinor(from: "14.0.0"))
],
swiftLanguageVersions: nil,
exclude: nil,
products: [
.executable(name: "socket.io-test", targets: ["MyTarget"])
]
)
但是,现在程序包管理器告诉我以下奇怪的错误:
错误:清单解析错误:错误:调用产品中的额外参数“产品”:[^
所以现在我放弃了,因为我显然一无所获。 “产品”论据怎么不属于这里? 为何包管理器没有任何建议? 我确定我缺少一些小东西。 有人可以指出正确的方向吗?
我还查看了以下网站,以寻求帮助,但仍然无法正常工作。
Swift.org https://medium.com/xcblog/apple-swift-package-manager-a-deep-dive-ebe6909a5284
希望我的问题不会太长,希望有人会找时间帮助:)
编辑
我将代码更改为以下内容:
import PackageDescription
let package = Package(
name: "socket.io-test",
dependencies: [
.Package(url: "https://github.com/socketio/socket.io-client-swift", majorVersion: 14)
]
)
而且这似乎没有错误。 它将Package.resolved
文件放置在我的项目文件夹中。 我找不到该文件的引用,而在我的项目中使用Socket.IO仍然迷失了方向。
编辑2
我开始使用Carthage导入框架。 在15分钟内完成设置。 由于是与我的问题无关的另一种解决方案,因此我决定将其添加为编辑而非答案。
如果仍然有人可以回答以上问题,请随时参考,我将继续对其进行测试,并接受其是否有效。
您需要将此行添加到Package.swift的顶部
// swift-tools-version:4.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.