2017-08-14 50 views
0

在本地创建Kitura应用程序并成功编译和构建。但是,当试图一段时间后部署到Heroku的,我得到下面的输出:未在Heroku上编译的Kitura Swift应用程序

/tmp/build_cbc1c98480abd8ace78731a677031c0a/.build/checkouts/Kitura.git--211144618449703330/Sources/Kitura/RouterRequest.swift:56:33:错误:使用未解析的标识符'RegularExpression'远程:let regex =尝试RegularExpression(pattern:pattern,options:[.caseInsensitive])remote:^ ~~~~~~~~~~~~~~~~ remote:Foundation .NSRegularExpression:1:12:note:你的意思是'NSRegularExpression'?远程:打开类NSRegularExpression:Foundation.NSObject,NSCopying,NSCoding {

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

这在Package.swift用过

使用Kitura的版本为1主要7次要

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

回答

1

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

其次,RegularExpressionNSRegularExpression代替,在这个拉请求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并检查最新的标签。

+0

感谢您的协助。是的 - 我正在使用1.7版本。将它更新到1.7.4允许它在heroku上编译。再次感谢! – user9370472