javascript - .app 文件夹是什么?如何将其转换为 .dmg 存档?

标签 javascript node.js macos electron

我正在使用electron-packager在 Mac OS X Sierra 上。我可以轻松打包整个应用程序,这会创建一个 release文件夹。其中,有一个名为 <AppName>.app 的文件夹。 ,我可以打开它。

我想做一个.dmg轻松分发它。然而,这个文件夹的行为方式非常神秘。我转到“磁盘工具”,并从文件夹中选择了新图像。当我去选择我的.app时文件夹中,它已经以某种方式显示为完整的应用程序。它不显示为文件夹。

我尝试给文件夹去皮。

tar -cvzf app.tar.gz MyApp.app

但是,当我在 Finder 中提取它时,它也是一个完整的、可以工作的应用程序。

.app 文件夹的这种奇怪行为是什么以及如何将其作为可安装的 .dmg 分发?

最佳答案

macOS 上的应用程序通常存储在 "application bundle" 中(顺便说一下,与 Webpack/Browserify 完全无关)。

在 Finder 以及文件对话框中,这些似乎是单个项目。正如您所说,“完整的应用程序”。然而,在幕后,这些项目实际上是目录/文件夹。如果您从较低级别的 Angular (例如从终端)查看它,您将看到一个名为 MyApp.app 的目录。

如果您想从中创建 DMG,请使用包含应用程序包的 release 文件夹。如果其中还有您不想添加到 DMG 的其他文件,请删除它们,或创建一个新的空目录,将应用程序移至此处,然后使用that作为文件夹来创建DMG 来自。

关于javascript - .app 文件夹是什么?如何将其转换为 .dmg 存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40044922/

相关文章:

javascript - alert() 返回与 console.log() 不同?

javascript - 在 FPDF 中使用 Google Charts API 生成的图形

node.js - Node 中原子性的 Redis 事务的替代方案

macos - OSX 上默认的 kerberos 凭证缓存是什么?

c++ - 无法使用SDL编译:体系结构x86_64的 undefined symbol

javascript - 如何将属性添加到我的自定义元素并能够对其值更改触发操作

node.js - bcrypt.compareSync 总是返回 false

java - crypto.pbkdf2 (node.js) 和 PBEKeySpec 之间 key 长度的差异

macos - 无法在 MacOS 上使用 launchctl 启动 tomcat : cryptic error

javascript - 从文本区域内执行 Javascript(自定义 JS 控制台)