error: cannot convert value of type 'ObjCBool' to expected argument type 'Bool' on Swift 4.1.2 and Kitura on Ubuntu 16.04

error: cannot convert value of type 'ObjCBool' to expected argument type 'Bool' on Swift 4.1.2 and Kitura on Ubuntu 16.04

我有一个普通的 Ubuntu 16.04,并在上面安装了 OpenSSH、Curl 和 Swift 4.1.2。 基本示例(swift package init --type executable)可以工作,但是当我想使用 Kitura 框架时,如果我 'swift build' 它会出现编译错误。

错误:

/.build/checkouts/Kitura.git--4845395383860597130/Sources/Kitura/staticFileServer/FileServer.swift:138:21: error: cannot convert value of type 'ObjCBool' to expected argument type 'Bool'
            if !isDirectoryBool {
                ^~~~~~~~~~~~~~~

error: terminated(1): /home/thewall/swift-4.1.2-RELEASE-ubuntu16.04/usr/bin/swift-build-tool -f /home/thewall/zSwift/.build/debug.yaml 主要输出:

我的 package.swift 文件如下所示:

import PackageDescription

let package = Package( name: "zSwift", dependencies: [ .package(url: "https://github.com/IBM-Swift/Kitura.git", >.upToNextMinor(from: "2.1.0")), ], targets: [ .target( name: "zSwift", dependencies: ["Kitura"]), ] )

uname -a 给出:

Linux thewall 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

有什么想法吗?

Kitura 处理得当,参见 https://github.com/IBM-Swift/Kitura/blob/master/Sources/Kitura/staticFileServer/FileServer.swift#L95

但是,您使用的是未针对您的 Swift 版本更新的过时 Kitura 版本。请将 Kitura 更新到最新版本,目前是 2.4.1。