【问题标题】:Uninstaller for a cocoa application可可应用程序的卸载程序
【发布时间】:2011-05-21 14:13:04
【问题描述】:

我将 PackageMaker 用于我的应用程序的安装程序(这不仅仅是一个简单的捆绑包)。 我想知道如何创建一个卸载程序,在哪里安装它以及如何为用户提供一种启动它的方式。

提前感谢您的帮助,

【问题讨论】:

  • 我不会将此作为答案发布,因为我不是 100% 相信它的正确性或有效性,但我认为大多数使用安装程序的应用程序都附带一个脚本来充当卸载程序。您应该知道您的安装程序安装了什么以及安装在哪里,因此,您应该能够编写并提供一个脚本来删除安装程序安装的所有内容。

标签: cocoa macos packagemaker


【解决方案1】:

在 OS X 上没有官方的卸载方法。有些应用程序会获取您的应用程序二进制文件,并找到与它一起安装的相关文件,并删除这些文件,但除此之外,您唯一的卸载选项是:

1) 编写您自己的卸载程序脚本。

2) 使用具有卸载功能的安装程序。这些天我不熟悉 VISE 安装程序必须提供什么,但在早期,我记得它具有卸载功能。

3) 做大多数应用程序所做的事情,不用担心卸载。说真的 - 98% 的 Mac 应用程序不提供卸载程序,如果大多数人想要卸载应用程序,他们只会将应用程序拖到垃圾箱,或者(如果他们更精明)使用 AppZapper 或 AppDelete 之类的卸载程序应用程序.

【讨论】:

    【解决方案2】:

    在为某些 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 就会运行。此脚本应检查您的应用程序是否在垃圾箱中,并询问用户是否要继续卸载。当然,这可以是任意脚本,甚至可以是二进制可执行文件,而不仅仅是 AppleScript。欲了解更多信息,请查看man page for launchd.plist

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 2011-09-06
      • 1970-01-01
      • 2016-07-02
      • 2017-08-09
      相关资源
      最近更新 更多