Why do some OSX progams have an installer (mpkg) instead of drag-drop?

Most OSX programs can be installed by dragging the app to the Applications folder (or wherever the user wants them).

However, some software must be installed by launching an .mpkg package, acting more like the 'double-click and press next-next-next...' installation method under Windows. For example: Google sketchup has an installer, while Google Picasa is drag-and-drop.

Why is this?

Would it technically be impossible for those programs that use the installer approach to provide the 'standard' drag-and-drop approach? I would assume that any files that need to be installed in specific locations could be done so upon first launch of a drag-and-dropped program?


The drag-and-drop method originaly came from cases where the application was a stand-alone executable, so all you needed to do to install it was drag the executable from a floppy to the App folder.

Today many applications use installers that let you drag-and-drop to the app folder, while the drag action in fact launches an installer that will install multiple files in different places. So technically the drag-and-drop today may very well be an installer.

So why then use an "Next-next-next-install" installer? Because you may want to ask the user questions! Maybe you don't want to install all parts of the software? Maybe you want it installed somewhere else? Or it could simply be a question of accepting the license agreement.

You can't do that with the drag-and-drop install.


Packages are not always necessary even when they are used. So it comes down to:

  1. The developers decided the installer method was the best and decided to use it, even if it was not necessary.

  2. It is necessary because the installer is also installing more than just an application, elsewhere or is installing more than one application. The method of adding them at first launch would also work, but Apple provides this packaging tech, and it would require writing extra code in order to accomplish it, and this method also leaves behind an installer receipt so you can go back and see what files were added by a package.