Я пытаюсь добавить 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
Это привело к следующей ошибке:
error: манифест ошибки синтаксического анализа: ошибка: аргумент «цели» должен предшествовать цели аргумента «зависимости»: [~~~~ ^ ~~~~~~~~~
Итак, следуяПо инструкции, указанной в ошибке, я переместил свои «цели» выше зависимостей.
Я снова выполнил команду и получил следующую ошибку:
error: явная ошибка синтаксического анализа (s)): ошибка: неверная метка аргумента в вызове (есть 'имя: продукты: цели: зависимости:', ожидаемое 'имя: 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"])
]
)
Однако сейчасменеджер пакетов сообщает мне следующую странную ошибку:
ошибка: явные ошибки анализа: ошибка: дополнительный аргумент 'products' в продуктах вызова: [^
Так что теперь я сдаюсь, поскольку я явно никуда не денусь.Как аргумент «продукты» не может принадлежать здесь?И почему ничего, предложенное менеджером пакетов, не работает?Я уверен, что мне не хватает чего-то маленького.Может кто-нибудь, пожалуйста, укажите мне в правильном направлении?
Я также обратился за помощью к следующим веб-сайтам, но все еще не могу заставить мой работать.
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 в моем проекте.
EDIT 2
Я продолжил использоватьКарфаген для импорта рамок.Получил настройку за 15 минут.Поскольку это другое решение, не относящееся к моему вопросу, я решил добавить его как редактирование, а не как ответ.
Если кто-то все еще может ответить на вышеизложенное, пожалуйста, не стесняйтесь для использования в будущем, и я все равно протестирую его и приму, если он работает.