使用派生的swift软件包作为Vapor项目的依赖项

时间:2019-02-20 15:14:55

标签: swift git vapor swift-package-manager

我已经为Firebase实时数据库连接创建了一个服务器端swift软件包: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:

我已经检查了文档中的swift软件包,这些都应该是洁净的,那么为什么它不起作用?这是swift软件包管理器的限制吗?还是蒸气?

2 个答案:

答案 0 :(得分:0)

我发现这仅仅是我对Swift Package Manager不够了解。删除.build目录并重试之后,一切似乎都可以正常工作。

答案 1 :(得分:0)

有时候,需要清除或重置软件包的构建,以使事情回到正轨。可以使用以下任一方式重置构建:

蒸气

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(url: "git@github.com…)协议期望SSH密钥对设置可与用于公共和专用存储库的远程服务一起使用。但是,{{1 }}协议不需要此设置,因为.package(url: "https://github.com…)提供了安全的传输层。

ssh密钥对

如果尚未完成,create and setup a public/private ssh key pair for GitHub. ⇗

〜/ .ssh / config

https

注意:较新的macOS系统要求### 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 UseKeychainAddKeysToAgent

一起使用

Package.swift

在软件包Keychain.app命令中明确声明已定义的MY-SSH-HOST

git