在本地创建Kitura应用程序,并成功编译和构建。但在尝试部署到heroku时,我得到了以下输出:
/tmp/build_cbc1c98480abd8ace78731a677031c0a/.build/checkouts/Kitura.git--211144618449703330/Sources/Kitura/RouterRequest.swift:56:33:错误:使用未解析的标识符‘RegularExpression’远程: let regex = try RegularExpression(pattern: pattern,options:.caseInsensitive)远程:^ 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由于超时而取消。任何帮助都将不胜感激。谢谢
发布于 2017-08-14 14:59:25
首先,请注意,您在Mac和Linux上遇到了Swift的差异。当Heroku运行Linux时,您可能在Mac上检查过它。
其次,在此拉流请求https://github.com/IBM-Swift/Kitura/pull/1107中,RegularExpression被替换为NSRegularExpression。从Kitura 1.7.4开始,您应该不会遇到这个问题。这意味着您可能使用1.7.4之前的Kitura版本,如果您的Package.pins文件指定了旧的Kitura版本,则可能会发生这种情况。您可以删除该文件,也可以运行swift package update对其进行更新。
要验证所使用的Kitura包的实际版本,请cd到.build/checkouts/Kitura.git-XXXXXXXXXXX目录,在那里运行git tag并检查最新的标记。
https://stackoverflow.com/questions/45666444
复制相似问题