我设置了一个 Electron 应用程序构建脚本,使用以下命令行将应用程序打包到 .dmg 文件中:
hdiutil create -srcfolder <appPath> -volname <volumeName> -anyowners -nospotlight -format UDRW -fs HFS+ -fsargs -c c=64,a=16,e=16
虽然这可行,但即使指定的 UDRW 格式不表示压缩,它最终也会被压缩(211 MB -> 74 MB),并且对源文件夹的任何更改似乎都会产生完全不同的输出文件。而且,对于基于块图的差异更新,我需要能够在仅引入最小更改时最大限度地减少流失(当目标平台是 Windows 并且格式是 ZIP 时,我很容易实现这一点)。
那么,这个构建脚本做错了什么?为什么最终的 DMG 会被压缩?当文件为 DNG 格式时,是否有可用的文件粒度压缩,或者这是一个丢失的案例,我必须在完全未压缩的应用程序或接受整个 DMG 流失之间做出选择,即使源文件夹中的单个字节发生变化?
补充:我可以理解,工具在构建镜像的时候,首先会产生一个HFS+分区,将源码复制到里面,然后用DMG镜像包裹起来,在这个过程中将其作为一个整体进行压缩。虽然它看起来像是一个广角镜头,但也许可以指示它在 FS 级别而不是 DMG 级别执行任何压缩?