在 MacOS 上将 Vapor 编译为独立应用程序

Posted

技术标签:

【中文标题】在 MacOS 上将 Vapor 编译为独立应用程序【英文标题】:Compiling Vapor as Standalone App on MacOS 【发布时间】:2018-02-10 21:05:44 【问题描述】:

我想用我的代码将 Vapor 编译为 MacOS 应用程序,这样我就可以将它放在内部服务器上(拖动并单击以启动它)。我宁愿不必在服务器上安装 Xcode、swift 和其他开发文件。我不熟悉蒸汽和快速。当我从 xCode 构建它时,我有一些东西正在运行。其他人问他们是否可以将其嵌入应用程序中,有,没有回应。是的没有提供任何关于如何做到这一点的方向。 它可以编译成独立的 OSX 应用程序吗? 我需要做什么才能实现它?如果你知道的话,请给我指点文档。我已经编译了独立的应用程序。只是不知道如何做蒸汽。 谢谢

【问题讨论】:

我和你在同一条船上。我问的大多数人都说你可以构建一个基于命令的应用程序并运行它。但我听到了,我想制作一个 macOS 独立应用程序,在你运行它时托管一个网络服务器。希望我们能找到答案! @JoeBayLD 我的回答符合您和 OP 的要求!实际上,我在 Raspberry Pi 上进行了大量的蒸汽开发,而没有安装蒸汽和(显然)Xcode。我只是简单地复制了一个在我的 Mac 上创建的蒸汽项目并进行了“快速构建”。在某些时候,我可以删除 swift 的“开发”部分,但有什么意义呢? 【参考方案1】:

我认为,至少最初,您必须安装 Xcode 才能构建一个蒸汽应用程序,只是为了获得 Swift 的东西。完成后,使用终端切换到 vapor 项目目录,然后使用以下命令构建并运行应用程序:

vapor update
vapor build
vapor run

这将导致创建并运行可执行文件。实际位置取决于您是为调试还是生产(在 Config 中设置)进行编译。假设你还处于调试阶段,编译后的可执行文件可以直接运行:

.build/debug/Run

来自您的 vapor 项目的主目录,而不是 vapor run。它不会从其他地方运行,因为它使用 Config 的相对路径等。

然后您可以将项目树和可执行文件复制到另一台 Mac 并尝试安装 Swift 运行时库等,使其在没有 Xcode 等的情况下运行。

【讨论】:

您好,我们可以将.build/release/Run 文件部署到远程服务器上并且无需其他任何操作即可工作吗? You could then copy the project tree and executable to another Mac and try installing the Swift runtime libraries, etc. to have it running without Xcode, etc.这是问题【参考方案2】:

Vapor 是一个 Web 框架,你不能像 macOS 应用一样使用它,但你需要在你的服务器上部署一个像 nginx 这样的 Web 服务器。

https://medium.com/@ahmedraad/how-to-deploy-vapor-app-on-ubuntu-16-04-and-run-it-in-production-eef18f7b4f05

【讨论】:

为什么不能将所有的 vapor 依赖项链接到一个独立的 macOS 应用程序并运行它? 因为为了运行你还需要一个像 NGiNX 这样的网络服务器,除非你想使用开发单线程“蒸汽运行” 我不明白。我建立了一个蒸汽应用程序。我想编译它并运行它所有下载该应用程序的最终用户。我不想安装 nginx。我只希望文件在他们的系统上可用。但似乎构建的 Vapor 应用程序有很多依赖项

以上是关于在 MacOS 上将 Vapor 编译为独立应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Python 编译为可执行的独立应用程序? [复制]

尝试在 64 位机器上将 Detours.lib 编译为 32 位:LNK1112:模块机器类型“x86”与目标机器类型“x64”冲突

Windows上的Kivy独立android apk

将单声道编译为静态库

在不需要 Homebrew 的情况下在 macOS 上安装 Vapor

在MacOS上创建一个 hello Vapor 后台项目