swift - Kitura Swift App 无法在 Heroku 上编译

标签 swift heroku kitura

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

/tmp/build_cbc1c98480abd8ace78731a677031c0a/.build/checkouts/Kitura.git--211144618449703330/Sources/Kitura/RouterRequest.swift:56:33:错误:使用未解析的标识符'RegularExpression'remote:让regex = try RegularExpression( : pattern, options: [.caseInsensitive]) remote: ^~~~~~~~~~~~~~~~~~ remote: 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 由于超时而取消的地步。任何帮助都感激不尽。谢谢

最佳答案

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

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

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

关于swift - Kitura Swift App 无法在 Heroku 上编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45666444/

相关文章:

ios - 在 Swift 中获取 UIImage 的平均颜色

ios - CGRect.offsetBy 不工​​作

heroku - 捕获 TERM 并发送 QUIT 后,Heroku 上的 Unicorn 退出超时

arrays - 我怎样才能快速存储巨大的数组

ruby-on-rails - 如何将 force_ssl 与 302 一起使用

ruby-on-rails-3 - Heroku 运行 rake db :migrate role error?

Swift kitura 多语言支持

swift - 如何在 Linux 上的 Swift 中更改进程标题?

ios - 仅在给定时间段内进行本地通知