Mac应用程序应该如何分发?

Alexander Limi有一个深思熟虑的作品Mozilla已经确定了Mac上Firefox的当前安装过程中存在的问题目前,他们遵循在磁盘映像上提供Firefox应用程序的常见模式,在安装时,使用背景图像和别名/应用/鼓励用户将应用程序从已安装的映像复制到其启动驱动器的文件夹利米写道:

Some common errors that we have seen repeatedly among informal testing with friends and family are:

他们直接将应用程序拖到他们的底座上。
This creates a link to the file inside the disk image, which means that every time they try starting Firefox, the disk image is unpacked and mounted, and starting of Firefox becomes very slow, which makes it a bad experience.

They think that starting Firefox is done by opening the disk image every time.
This is very common, and the logic is that the first time they started Firefox, they had to do this, so they continue doing it. This makes starting Firefox a chore, since it takes a lot of clicks to accomplish.

我同意磁盘映像对于非专业用户来说是个问题虚拟卷的整个概念太抽象了几乎所有优秀的Mac应用程序都可以通过复制来安装几乎所有好的Mac应用程序AppName.app捆绑到硬盘上您想要的任何位置,只需将同一个捆绑包拖到废纸篓即可卸载应用程序当然,用户不需要了解甚至不知道.app包实际上只是Finder视为单个项目的文件夹Mac用户应该知道的唯一概念抽象是图标is该应用程序。

但是为了使这项工作适用于由磁盘映像提供的应用程序,用户必须了解他们必须将应用程序从映像复制到其启动驱动器这是一些迷路的地方。

iPhone显示了应用程序安装概念的简单程度 - 同样重要的是,联合国- 安装 - 可以iPhone应用程序只有一个位置:在其中一个主屏幕上整个文件系统已被抽象掉了如果您看到应用程序图标,则表明已安装如果你想摆脱它,你只需按住即可调用微动模式并点击该图标的X按钮更好的是,iPhone安装后没有任何“清理”:没有安装的映像要卸载,没有.zip或.dmg下载文件要扔掉。

虽然我同意与使用磁盘映像进行Mac应用程序分发相关的问题,但我最初的反应是我不喜欢Limi提出的解决方案:包含安装程序应用程序的磁盘映像,该应用程序设置为在安装映像时自动运行。

我不喜欢安装程序的是用户不知道在哪里安装了什么(Yes, you can use the Show Files command in the installer File menu to see what’s going to be installed, but the only people who know about this command are those of us who aren’t confused by any of this stuff in the first place.)

但是在考虑了这个之后,我发现Mac应用程序的安装程序 - 即使它只是将.app包复制到/应用/- 可以说提供了更像iPhone的安装过程iPhone的App Store应用程序实际上是一个安装程序You install by clicking an “Install” button; you uninstall by taking action on the app icon.

但不同的是,在iPhone上,App Store不仅仅是传统的安装和更新应用程序的方式,它是唯一的方式在Mac上,安装人员至少有点不同寻常安装人员的工作也是如此反对一些高级用户的意愿每当我通过拖放安装Mac应用程序时,我都不会将它放在启动的根级别驱动器中/应用/文件夹,而是在inside-my-user-account-home-folder中〜/应用/,这是将第三方应用与Apple的系统应用分开的简单方法将目标硬编码到根级应用程序文件夹的安装程序可以解决这个问题。

在Firefox的情况下,Limi撇开了这个场景

Note that experienced Mac users should be able to cancel the installer at any time and drag the Firefox application to the location they want instead, thus there should be no loss of functionality or flexibility for them.

也许这是一个很好的妥协,但我怀疑许多有经验的用户,实际上更愿意通过手动拖放来安装Firefox,取消安装程序这样做,在合理的假设下,如果有安装程序,除了复制.app包之外,它必须做一些事情“取消安装程序”听起来不是安装软件说明中的一个很好的步骤。

压缩它

我最喜欢的是将Mac应用程序作为简单的.zip档案提供的复苏趋势(这种技术可以追溯到Mac应用程序通常以StuffIt档案形式交付的十年)下载.zip文件,双击,然后是应用程序就像磁盘映像一样,用户是什么应该然后将应用程序移动到其Applications文件夹但是 - 这是在磁盘映像上使用zip存档的优势 -他们没有必要用户可以直接从他们的“下载”文件夹启动应用程序,它也可以正常工作他们可以将它拖到他们的Dock,它会工作得很好它并不整洁,但是没有令人困惑的抽象,就像虚拟磁盘卷一样,在它们因为不理解的原因退出后会消失。

And you know when you double-click certain non-app bundles of software, like Dashboard widgets and System Preference panes, and the Finder prompts to ask if you’d like to install it, and if you agree, the system goes and puts the bundle in the right location, like, say,〜/库/小工具/要么〜/资源库/ PREFERENCEPANES /

也许Apple应该为.app包做类似的事情,如果你从中启动一个应用程序〜/下载/,它会提示您安装该应用程序,如果您同意,它会将其移动到Applications文件夹并从那里启动它。1


  1. 两年前,帕特里克杜布罗在一篇名为“为什么在Mac上安装软件如此复杂?”而Lukas Mathis在7月的Mac应用程序发行中有两件好事,这里这里↩︎