升级后 vapor 工具箱损坏 swift

vapor toolbox broken after upgrading swift

Vapor 工具箱在升级到 Swift 3.1 后尝试使用时崩溃。

dyld: lazy symbol binding failed: Symbol not found: __TTSfq4n_s___TFVSS13CharacterView38_measureExtendedGraphemeClusterForwardfT4fromVVSS17UnicodeScalarView5Index_Si
  Referenced from: /usr/local/bin/vapor
  Expected in: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftCore.dylib

dyld: Symbol not found: __TTSfq4n_s___TFVSS13CharacterView38_measureExtendedGraphemeClusterForwardfT4fromVVSS17UnicodeScalarView5Index_Si
  Referenced from: /usr/local/bin/vapor
  Expected in: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/libswiftCore.dylib

Swift ABI 还不稳定。因此,Swift 程序(如 Vapor Toolbox)必须重新编译才能使用新版本的语言。

用 Brew 重新安装

只需重新安装工具箱即可解决此问题。

brew reinstall vapor/tap/vapor

用 Brew 替换旧安装

如果您最初没有使用 Homebrew 安装,您可能需要删除现有的可执行文件

rm /usr/local/bin/vapor

然后确保可执行文件已经消失

which vapor

您现在可以使用 brew 安装

brew install vapor/tap/vapor

您可以简单地从

中删除 Vapor 可执行文件
/usr/local/bin

然后运行文档中的工具箱安装脚本

curl -sL toolbox.vapor.sh | bash