在 Mac OS X 应用程序包中替换/更新文件

3

在Windows上部署软件时,通过以管理员身份运行安装程序(例如使用NSIS生成的程序)相对容易更新程序文件夹中的文件。那么在Mac上有类似的方式吗?是否可以交换已安装的应用程序包中的文件,如何操作?

谢谢!

1个回答

1

如果你的应用是通过App Store发布或签名的(或两者都有),那么你不能替换应用程序包中的文件,否则它就会在随后的尝试中无法启动。

你没有在问题中提供足够的信息来解释你正在尝试做什么。这是为你正在编写的应用程序还是针对拥有站点许可证或您完全不控制的应用程序?

如果这是针对你正在编写的应用程序,苹果建议安装资源到〜/ Library / Application Support /〜/ Library / Cache /或其他目录中,然后 - 在大多数情况下 - 你需要在你的应用程序中创建一些机制来获取和保存更新的资源。可能有一些macOS提供的东西,比如 NSCache


感谢提供的信息。我刚接触 Mac 平台,并想要将自己基于 Java 的软件适配到 Mac OS X 上。该软件未通过 App Store 分发,也未签名。我正在使用 JarBundler 创建应用程序包(加上一些手动调整 plist 文件),然后创建 dmg 包以便在 CD 上部署。用户数据存储在 user.home 中,但其余部分都包含在应用程序包中。应用程序包似乎只是一个目录结构。我想知道是否有可能自动替换此结构内的文件。否则,用户将不得不手动复制文件。 - user1227776
我仍然认为更明智的做法是使用“〜/Library/Application Support”或“〜/Library/Cache/”或“〜/Library/Preferences”中提供的文件夹层次结构,特别是如果苹果决定在未来的MacOS版本中锁定所有应用程序和应用程序包。 - Michael Dautermann
似乎很容易:只要您拥有管理员权限,即使未签名的应用程序包驻留在程序文件夹中,也可以轻松编写它们。我使用单独的进程来替换相应的内容。看起来运行良好! - user1227776

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接