我已经为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软件包管理器的限制吗?还是蒸气?
答案 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
和UseKeychain
与AddKeysToAgent
Package.swift
在软件包Keychain.app
命令中明确声明已定义的MY-SSH-HOST
。
git