【问题标题】:How do I use the "nwjc" versions for Mac and Linux, on Windows?如何在 Windows 上使用 Mac 和 Linux 的“nwjc”版本?
【发布时间】:2021-09-30 07:59:25
【问题描述】:

NW.js 有这个称为“保护 JavaScript 源代码”的功能:https://nwjs.readthedocs.io/en/latest/For%20Users/Advanced/Protect%20JavaScript%20Source%20Code/

您的应用程序的 JavaScript 源代码可以通过编译为本机代码并由 NW.js 加载来保护。您只需将编译后的代码与您的应用一起分发即可用于生产。

使用 SDK 构建中提供的工具 nwjc 将 JS 源代码编译为本机代码。

编译后的代码不跨平台也不兼容 NW.js 版本。因此,在打包应用程序时,您需要为每个平台运行 nwjc。

我下载了适用于 Windows、Mac 和 Linux 的 SDK 分发包,并查看了其中的文件。

Windows 有一个“nwjc.exe”文件,可以使用并且可以工作。很好。

但是 Mac 和 Linux 没有 .exe,而只是一个“nwjc”可执行文件。这显然是为了分别在 macOS 和 Linux 上运行。嗯?

我使用的操作系统是 Windows。我正在 Windows 上开发我的 NW.js 应用程序,将在 Windows、Mac 和 Linux 上分发。而且我无法在 Windows 系统上运行那些 Linux/macOS 可执行文件。但我必须这样做,因为它们出于某种原因不是跨平台的。

这对我来说似乎是一个死胡同。我要么不必“保护”我的应用程序(因此它被盗/复制/损坏/被黑客入侵),或者购买两台单独的计算机(一台昂贵的 Mac 和一台用于 Linux 的 PC)并在这些计算机上执行此步骤。这当然违背了“简单”跨平台开发的全部意义。

在你这么说之前,我已经尝试过在虚拟机中运行 Linux,这很糟糕。而且 Mac 甚至不能合法地模拟 AFAIK。

这很可能会导致我的应用程序仅适用于 Windows,这真的很可悲,因为走这条路的一个主要原因是具有“简单”的跨平台性,并且“可以正常工作”。

我对此有什么遗漏吗?

PS:在“保护”阶段之前,我已经用 Uglify-JS “粉碎”了我的代码。

【问题讨论】:

    标签: linux windows macos cross-platform nwjs


    【解决方案1】:

    源代码保护通过保存当前在操作系统内存中运行的应用程序的副本来发挥作用。这意味着您必须在实际操作系统上运行该命令,这样它才能将应用加载到内存中,然后将其保存为 V8 快照(V8 是 Chromium/Node/NW.js 使用的 JS 引擎)。

    您可以使用 VirtualBox 或 VMWare 等工具在 Windows 上模拟其他操作系统。让 OSX 在模拟器中运行很痛苦,但是有 youtube 教程来解释如何。 Linux 非常简单,如果您不熟悉,我会从那里开始。尽管在实际硬件上运行您的应用程序并在每个操作系统中手动测试总是最好的。

    如果这太麻烦,那么您可以考虑稍后再担心源保护。如果您不使用此功能,您仍然可以将您的应用程序设置为在其他操作系统上分发,而无需模拟它们。尽管如此,最好还是在每个操作系统上手动测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      相关资源
      最近更新 更多