Deployment 如何确保桌面程序在全新安装后正常工作?

Deployment 如何确保桌面程序在全新安装后正常工作?,deployment,release,beta-testing,Deployment,Release,Beta Testing,动机-我已经准备好了我的Cocoa应用程序的新版本,它在所有测试人员的机器上都运行良好。所以我发布了它。事实证明,一个关键的功能在其他任何人的计算机上都不起作用。哎呀!是的,请再读一遍:我发布了不起作用的软件。 原因-使用以前版本我的应用程序(阅读:我的所有忠实测试人员)的用户已经从旧版本获得了一个文件夹~/Application Support/MyApp/。由于新版本中存在严重缺陷,此文件夹是软件正常工作所必需的。对于其他人来说,因为文件夹不存在,所以它无法工作 你可以想象,这是非常令人尴尬

动机-我已经准备好了我的Cocoa应用程序的新版本,它在所有测试人员的机器上都运行良好。所以我发布了它。事实证明,一个关键的功能在其他任何人的计算机上都不起作用。哎呀!是的,请再读一遍:我发布了不起作用的软件。

原因-使用以前版本我的应用程序(阅读:我的所有忠实测试人员)的用户已经从旧版本获得了一个文件夹
~/Application Support/MyApp/
。由于新版本中存在严重缺陷,此文件夹是软件正常工作所必需的。对于其他人来说,因为文件夹不存在,所以它无法工作

你可以想象,这是非常令人尴尬的,我希望这种情况永远不会再发生

补救措施-确保这一点的直接方法当然是在发布新版本之前,实际下载并安装到“干净”的机器上。但这似乎是不切实际的,因为随着时间的推移,我会失去一个从未尝试过我的应用程序(最终所有人都会尝试;-)的Mac电脑的朋友,因为我并不急于在每次发布之前“格式化c:”我的Mac电脑

这就是我需要你帮助的地方:

如何确保以前从未使用过我的软件的用户获得与使用过我的软件的用户相同的结果?虚拟机(VMWare Workstation等)对于测试应用程序的干净安装非常有用。你可以启动一个新的虚拟操作系统,安装你的东西,测试它,然后在完成后删除虚拟机。还有一些方法可以自动启动虚拟机,这可以让您的生活更加轻松


另一件事是确定应用程序所需的所有先决条件,并在启动时添加这些条件的检查。如果某些设置不正确,您可以尝试在代码中进行设置,也可以通知用户进行设置。

一种更轻量级的方法可能是使用一些工具,例如删除与要测试的应用程序相关的所有内容—临时文件、首选项、缓存、历史记录等。

虚拟机是一种方法。我相信VMWare和Parallels允许您创建虚拟机的快照。我建议创建一个干净的VM安装,拍摄系统快照,完成后回滚。在必要时,可以更快地获得干净的系统。