Kitura Swift 应用未在 Heroku 上编译
Kitura Swift App not compiling on Heroku
在本地创建Kitura 应用程序并成功编译和构建。但是一段时间后尝试部署到 heroku 时,我得到以下输出:
/tmp/build_cbc1c98480abd8ace78731a677031c0a/.build/checkouts/Kitura.git--211144618449703330/Sources/Kitura/RouterRequest.swift:56:33: 错误:使用未解析的标识符 'RegularExpression' 远程:让 regex = 尝试 RegularExpression (模式:模式,选项:[.caseInsensitive])远程:^~~~~~~~~~~~~~~~~远程:Foundation.NSRegularExpression:1:12:注意:你的意思是'NSRegularExpression'?远程:打开 class 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 运行s Linux.
其次,RegularExpression
在这个 pull request 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
并检查最新标签。
在本地创建Kitura 应用程序并成功编译和构建。但是一段时间后尝试部署到 heroku 时,我得到以下输出:
/tmp/build_cbc1c98480abd8ace78731a677031c0a/.build/checkouts/Kitura.git--211144618449703330/Sources/Kitura/RouterRequest.swift:56:33: 错误:使用未解析的标识符 'RegularExpression' 远程:让 regex = 尝试 RegularExpression (模式:模式,选项:[.caseInsensitive])远程:^~~~~~~~~~~~~~~~~远程:Foundation.NSRegularExpression:1:12:注意:你的意思是'NSRegularExpression'?远程:打开 class 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 运行s Linux.
其次,RegularExpression
在这个 pull request 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
并检查最新标签。