Использование разветвленного пакета Swift в качестве зависимости для проекта Vapor - PullRequest
0 голосов
/ 20 февраля 2019

Я разослал серверный пакет swift для подключения к базе данных Firebase в реальном времени: ferno , и я пытаюсь использовать его в качестве зависимости в моем Package.swift, например:

.package(url: "git@github.com:3sidedcube/ferno.git", .branch("jwt3")),

однако при запуске vapor xcode я получаю сообщение об ошибке:

Error: Could not generate Xcode project: Completed resolution in 8.33s
error: terminated(128): git -C /Users/simonmitchell/Coding/Device-Monitor/.build/checkouts/ferno.git--4002215034454709000 checkout -f 155fa23f2f2d985dbee20072e560b095f61d7b63 output:

Я проверил документы на быстрые пакеты, и все это должно быть кошерным, так почему же оно не работает?Это ограничение быстрого менеджера пакетов?Или Vapor?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Бывают случаи, когда сборка пакета должна быть очищена или сброшена, чтобы вернуть все в нужное русло.Сборка может быть сброшена одним из следующих способов:

steam

vapor clean
vapor update
# Updating [Done]
# Changes to dependencies usually require Xcode to be regenerated.
# Would you like to regenerate your xcode project now?
y/n> y
# Generating Xcode Project [Done]
# Select the `Run` scheme to run.
# Open Xcode project?
y/n> y
# Opening Xcode project...

менеджер пакетов swift

swift package reset # Reset the complete cache/build directory
swift package update
# Fetching https://github.com/vapor/vapor.git
# Fetching https://github.com/vapor/fluent-sqlite.git
# Fetching git@github.com-MY-SSH-HOST:3sidedcube/ferno.git
# ...

swift package generate-xcodeproj
# generated: ./Hello.xcodeproj
open Hello.xcodeproj/

удаление сборки вручную

rm -Rf .build
rm -Rf Hello.xcodeproj

Кроме того, по моему опыту, протокол Swift Package Manager .package(url: "git@github.com…) предполагает настройку пары ключей SSH для использования с удаленной службой как для публичных, так и для частных репозиториев. Однако протокол .package(url: "https://github.com…) не требует этой настройки, поскольку https обеспечивает безопасный транспортный уровень.

пара ключей ssh ​​

Если это еще не сделано, создайте и настройте пару открытых / закрытых ключей ssh ​​для GitHub.10

~ / .ssh / config

### GITHUB-MY-SSH-HOST
### ADD REPOSITORY: git@github.com-MY-SSH-HOST:_USER_NAME_/_REPOSITORY_NAME_.git
Host github.com-MY-SSH-HOST
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_privatelocal_rsa
  UseKeychain yes
  AddKeysToAgent yes
  PreferredAuthentications publickey

Примечание. Для более современных систем MacOS требуется UseKeychain& AddKeysToAgent для работы с Keychain.app

Package.swift

Четко объявить определенный MY-SSH-HOST в пакетеgit команда.

.package(url: "git@github.com:3sidedcube-MY-SSH-HOST/ferno.git", .branch("jwt3"))
],
targets: [
    .target(name: "App", dependencies: ["FluentSQLite", "Vapor", "Ferno"]),
// …
0 голосов
/ 20 февраля 2019

Я обнаружил, что я просто недостаточно знал о менеджере пакетов swift.После удаления каталога .build и повторных попыток все работает нормально.

...