首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows上为Mac和Linux使用"nwjc“版本?

如何在Windows上为Mac和Linux使用"nwjc“版本?
EN

Stack Overflow用户
提问于 2021-07-23 06:34:29
回答 1查看 168关注 0票数 1

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

应用程序的JavaScript源代码可以通过编译到本机代码并由NW.js加载而受到保护。您只需将编译好的代码与您的应用程序一起发布即可生产。JS源代码是使用SDK构建中提供的工具nwjc编译成本机代码的。编译的代码既不跨平台,也不兼容NW.js的不同版本。因此,在打包应用程序时,需要为每个平台运行nwjc。

我下载了Windows、Mac和Linux的SDK发行版,并查看了其中的文件。

Windows有一个"nwjc.exe“文件,可以随时使用和工作。好的。

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

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

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

在您这么说之前,我尝试过在VM中运行Linux,这很糟糕。而且Macs甚至不能被合法模仿AFAIK。

最有可能的是,这将导致我的应用程序只适用于Windows,这确实令人难过,因为采用这种方法的一个主要原因是具有“简单”的跨平台性,而这种跨平台“只是有效的”。

这件事我有什么遗漏吗?

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

EN

回答 1

Stack Overflow用户

发布于 2021-07-23 12:26:20

源代码保护的工作方式是保存应用程序的副本,因为它目前正在操作系统的内存中运行。这意味着您必须在实际的操作系统上运行命令,这样它就可以将应用程序加载到内存中,然后将其保存为V8快照(V8是Chromium/Node/NW.js使用的JS引擎)。

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

如果这太麻烦了,那么您可以考虑在以后才开始担心源代码保护。如果你不使用这个功能的话,你仍然可以在其他操作系统上设置你的应用程序,而不需要模仿它们。尽管如此,总是最好手动测试在每个操作系统上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68494972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档