【问题标题】:Vapor unable to deploy to Heroku: We don't have build instructions for 5.3Vapor 无法部署到 Heroku:我们没有 5.3 的构建说明
【发布时间】:2020-07-26 02:34:17
【问题描述】:

我能够将更改提交到我的 Heroku 存储库,但是当我推送它时,它显示以下错误:

  remote: Compressing source files... done.
        remote: Building source:
        remote: 
        remote: -----> Swift app detected
        remote: -----> Using Swift 5.3 (from .swift-version file)
        remote: -----> Using built-in clang (Swift 5.3)
        remote: -----> Installing swiftenv
        remote: -----> Installing Swift 5.3
        remote: We don't have build instructions for 5.3.
        remote:  !     Push rejected, failed to compile Swift app.
        remote: 
        remote:  !     Push failed

我使用了以下命令:

$ git add .
$ git commit -am "make it better"
$ git push heroku master

我还把 buildpack 改成了vapor/vapor:

heroku buildpacks:set vapor/vapor

为什么会发生此错误,我该如何解决?

我什至通过以下命令更改了 swift 版本

 echo "5.1.3" > .swift-version
git add .                    
git commit -m "Done" 

并将其推送到 Heroku 显示以下错误

package at '/tmp/build_8e6b47bc' is using Swift tools version 5.2.0 but the installed version is 5.1.0

【问题讨论】:

    标签: swift heroku vapor


    【解决方案1】:

    Swift 5.3 doesn't appear to have been released yet,我能找到的唯一 Vapor 构建包还不支持它。

    我认为您在其当前文档中使用的是使用 Swift 版本 5.1.3this buildpack。尝试将您的 Swift 版本减少到该版本(通过编辑您的 .swift-version 文件并提交)并重新部署。

    编辑:您的新错误表明 Swift 工具版本不匹配。我没有用 Swift 编程,但it looks like this is defined by a line in your Package.swift file 和你的 Swift 版本有关:

    包清单的第一行表示所需的 Swift 工具版本。这指定了包支持的 Swift 的最低版本。 Package description API 也可能在 Swift 版本之间发生变化,因此这一行确保 Swift 知道如何解析您的清单。

    尝试改变

    // swift-tools-version:5.2
    

    // swift-tools-version:5.1
    

    然后提交并重新部署。

    我还建议确保您在本地使用与服务器上的目标相同的 Swift 版本进行开发。

    【讨论】:

    • 好的,我应该使用什么命令,是否可以指定不同版本的 Swift 或者我应该更改项目的 swift 版本
    • @Stark2022,我总是建议尽可能在开发和生产中使用相同版本的所有内容。请查看我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2015-08-06
    • 2020-10-30
    • 2016-10-19
    相关资源
    最近更新 更多