Vapor 不适用于 xcode 9 和 swift 4

Posted

技术标签:

【中文标题】Vapor 不适用于 xcode 9 和 swift 4【英文标题】:Vapor doesn't work with xcode 9 and swift 4 【发布时间】:2017-11-03 21:36:51 【问题描述】:

当我尝试使用 Xcode 9 编译我新创建的 vapor 项目时,我得到 189 个编译错误。完成这项工作的诀窍是什么?我安装了 vapor 和工具箱,并通过 'vapor new test --template=api' 创建,然后通过 'vapor xcode' 启动它。

【问题讨论】:

部分已经迁移到 Vapor 2 + Swift4 的例子贴在github上Vapor Examples Lab。 【参考方案1】:

Xcode 12 / Swift 5.3 更新

vapor 现在是homebrew/core 的一部分。来源:githubhomebrew-core/Formula/vapor.rb.

##### If applicable, remove the obsolete 'vapor/tap' #####
## List current taps:
brew tap
# homebrew/core
# vapor/tap
## Remove tap:
brew untap vapor/tap

#### Install current version of vapor #####
brew install vapor
brew upgrade vapor

Xcode 9 / Swift 4

检查所有内容是否都是最新的。目前为我构建并运行以下代码:

使用最新的蒸汽工具箱。

目前:

vapor new test --template=api
cd test
swift package tools-version
# 4.0.0
# use `swift package tools-version --set-current` if needed
rm Package.resolved
vapor update
vapor --version
# Vapor Toolbox: 3.1.2
# Vapor Framework: 2.3.0

注意,Vapor Framework:__ 仅在终端工作目录pwd 指向一个汽化项目目录时显示。

如果需要...

brew tap --full  vapor/homebrew-tap
brew update 
brew upgrade

在某些情况下,可能需要删除并重新安装蒸汽工具箱。 (见"vapor toolbox broken after upgrading swift"

使用最新的 Xcode 版本。

当前:Xcode:9.1,Swift:4.0.2

swift --version
# Apple Swift version 4.0.2 (swiftlang-900.0.69.2 clang-900.0.38)

使用vapor updateswift package update

vapor new test --template=api
cd test
rm Package.resolved
vapor update

或者,

vapor new test --template=api
cd test
rm Package.resolved
swift package update
swift package generate-xcodeproj

上面的更新、编译和在 Xcode 9.1 中对我来说运行正常。

注意:但是,大约有 44 条相同类型的新弃用警告。我第一次意识到 Xcode9.1/Swift4.0.2 的 characters 弃用。

'characters' 已弃用:请直接使用字符串或子字符串"

所以,新的弃用警告,但 0 个错误......而且,更重要的是,该项目作为 Vapor 2 + Swift 4 运行。

此外,请检查 Packages.resolved 版本与每个相应源存储库中可用的版本。在 github 上,Vapor 示例实验室:TemplateApiTest 存储库包含生成的 Packages.resolved,并与上述工具链场景一起使用。

最后,再次检查目标是 macOS 上的 Run,而不是此版本的基于 ARM 的 iOS。

【讨论】:

我有相同的工具箱版本,但我的版本命令不显示框架输出。我的 swift 版本和你的一样(注意你在那个命令副本中说的是蒸汽而不是 swift)。我仍然收到 193 个错误。 swift package tools-version 返回没有这样的文件或目录包的错误。 好的,一切看起来都和你的一样。我的工具版本说 4.0.0。但是当我打开项目时,我得到了大量的 xcode 错误 这是 Crypto 的一个例子,它失败了。我的 openssl 来自 brew。 ld:警告:忽略文件 /usr/local/opt/openssl/lib/libssl.dylib,文件是为 x86_64 构建的,它不是被链接的体系结构(arm64):/usr/local/opt/openssl/lib/libssl。 dylib【参考方案2】:

如果使用 brew,请尝试“brew upgrade vapor”。如果您使用的是 apt,请尝试“sudo apt-get update”,然后尝试“sudo apt-get install vapor”。这对我有用。我想是因为我前段时间安装了 2.0,不能用 3.0 项目下沉。

【讨论】:

以上是关于Vapor 不适用于 xcode 9 和 swift 4的主要内容,如果未能解决你的问题,请参考以下文章

PKAddPassButton 不适用于 iOS 9

Vapor 中的封装位错误

Vapor 3 Swift 4 如何制作计时器

推送通知不适用于 testflight 和 xcode 8 beta

CCCrypt 不适用于 iOS 7 的 xcode 5

Swift UI 实时预览画布不适用于 macOS Catalina 和 Xcode 11.0