使用 dmg 在 mac 上更新应用程序而不会丢失数据

问题描述

我用 Java 编写了一个程序,它创建了一些类似的文件

FileOutputStream fos = new FileOutputStream("data.txt");

...

我使用 install4j 创建了一个 dmg-drag-and-drop-installer,效果很好。

当我使用同样的安装程序提供更新时,macOS 允许并行安装更新或替换现有版本。 之前创建的“data.txt”将因替换而被删除

是否有机会更改更新过程,以便像在 Windows 中一样只更改更新包中存在的那些文件? 在 Windows 中,我可以运行较新版本的安装程序,并且不会触及用户数据。

或者我是否必须将所有文件存储在例如文档文件夹中才能解决此问题?

感谢您的帮助!

解决方法

或者我是否必须将所有文件存储在文档文件夹中才能解决这个问题 问题?

是的,你必须这样做。 macOS 会替换整个应用程序包,但不会合并它们。

在应用程序包中写入也不是一个好主意,因为它会破坏签名。