可可应用程序的卸载程序

4
我正在使用PackageMaker创建我的应用程序的安装程序(这不仅仅是一个简单的捆绑包)。 我想知道如何创建卸载程序,将其安装在哪里以及如何为用户提供启动它的方法。
非常感谢您的帮助。

1
我不会将这个作为答案发布,因为我不能百分之百确定它的正确性或有效性,但我认为大多数使用安装程序的应用都会附带一个脚本作为卸载程序。你应该知道你的安装程序安装了什么以及在哪里,因此,你应该能够编写并提供一个脚本,以删除安装程序安装的所有内容。 - Jasarien
2个回答

12

在实现 MAC OS 应用程序的卸载程序时,我们想出了一个主意。正如 SerpicoLugNut 所说:

真的,98% 的 Mac 应用程序都不提供卸载程序,如果大多数人想要卸载应用程序,他们只需要将其拖到垃圾桶中即可。

我们设计了一种方法,可以监视垃圾箱,在我们的应用程序出现在垃圾箱中时,我们可以询问用户是否希望卸载它。

幸运的是,MAC OS 提供了开箱即用的功能来实现这一点。您只需要将以下 .plist 文件放置在 /Library/LaunchAgents 中即可:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.your.app</string>
<key>WatchPaths</key>
<array>
    <string>~/.Trash</string>
</array>
<key>ProgramArguments</key>
<array>
    <string>osascript</string>
    <string>/path/to/your/app/Check Trash.applescript</string>
</array>
<key>KeepAlive</key>
<false/>

在这个例子中,一旦用户的垃圾箱被修改,就会运行一个名为Check Trash.applescript的脚本。这个脚本应该检查你的应用程序是否在垃圾箱中,并询问用户是否想要继续卸载。当然,这可以是任意脚本或二进制可执行文件,不仅仅是一个苹果脚本。更多信息,请查看launchd.plist的man页面


在运行时,我无法在 /Library/LaunchAgents 下创建文件,它显示了权限被拒绝的错误。 - PRATHIV

2
在OS X上没有官方的卸载方法。有一些应用程序可以获取您的应用程序二进制文件,并找到与其安装在一起的相关文件,然后将其删除,但除此之外,您的唯一卸载选项是:
1)编写自己的卸载脚本。
2)使用具有卸载功能的安装程序。我不熟悉VISE安装程序现在提供什么功能,但早期我记得它有卸载功能。
3)像大多数应用程序一样,不要担心卸载。说真的 - 98%的Mac应用程序不提供卸载程序,如果大多数人想要卸载该应用程序,他们只需将该应用程序拖到垃圾桶中,或者(如果他们稍微更精通)使用类似AppZapper或AppDelete的卸载程序。

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