【问题标题】:Kitura Swift App not compiling on HerokuKitura Swift App 未在 Heroku 上编译
【发布时间】:2017-08-14 01:45:34
【问题描述】:

在本地创建一个 Kitura 应用并编译构建成功。但是一段时间后尝试部署到heroku时,我得到以下输出:

/tmp/build_cbc1c98480abd8ace78731a677031c0a/.build/checkouts/Kitura.git--211144618449703330/Sources/Kitura/RouterRequest.swift:56:33:错误:使用未解析的标识符“RegularExpression”远程:让正则表达式=尝试正则表达式(模式:模式,选项:[.caseInsensitive])远程:^~~~~~~~~~~~~~~~~远程:Foundation.NSRegularExpression:1:12:注意:您的意思是“NSRegularExpression”吗?远程:开放类 NSRegularExpression:Foundation.NSObject,NSCopying,NSCoding {

使用的 swift 版本是 3.1,我在通过 .swift-version 文件推送到 heroku 时指定了相同的版本。

这是使用的 Package.swift

使用的 Kitura 版本是 1 大调 7 小调

尝试其他版本的 swift,例如3.1.1 导致挂起 - 以至于 heroku 由于超时而取消。任何帮助都感激不尽。谢谢

【问题讨论】:

    标签: swift heroku kitura


    【解决方案1】:

    首先,请注意您在 Mac 和 Linux 上遇到 Swift 的差异。你可能在你的 Mac 上检查过它,而 Heroku 运行的是 Linux。

    其次,RegularExpression 在此拉取请求 https://github.com/IBM-Swift/Kitura/pull/1107 中被 NSRegularExpression 替换。从 Kitura 1.7.4 开始,您应该不会遇到此问题。这意味着您可能使用 1.7.4 之前的 Kitura 版本,如果您有指定旧 Kitura 版本的 Package.pins 文件,则可能会发生这种情况。您可以删除该文件,或运行 swift package update 来更新它。

    要验证使用的 Kitura 包的实际版本,cd.build/checkouts/Kitura.git-XXXXXXXXXXX 目录,在那里运行 git tag 并检查最新标签。

    【讨论】:

    • 感谢您的帮助。是的 - 我使用的是 1.7 版。将它更新到 1.7.4 允许它在 heroku 上编译。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多