簡體   English   中英

使用Swift Package Manager添加依賴項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM