Writing installers

In my developer career, for whatever reason I’ve escaped having to work on Installers.

Maybe I was part of a team and someone else was assigned to do the installer work. I might poke at a script here or there, but the bulk was someone else. Or I might be working on a project that didn’t need an installer, either we’d just distribute an archive, or we could do a simple disk image with a drag-install. Consequently, I’ve never really had to experience the pain of creating an installer from scratch.

I’m working on a small project that required the files to be installed in an obscure location within the User’s Library folder. Due to that, I figured it’d be best to use an installer. Besides, earlier this week I had to do a little installer tweaking on another project and felt rather clueless about how Iceberg worked so hey… might as well try making my own installer for the learning experience.

Holy crap, Lois.

I’m just amazed at how powerful yet how restricted package-based installers are. Good grief, Apple. Why is it so difficult in the second decade of the 21st century to write an installer that places something in the Home directory? Why do I have to resort to strange hacks, and having to resort to strange hacks is the established way to accomplish this? For a company that likes to promote how their products “just work”, this is FAIL.

I will say, Iceberg has some flaws, but seems to get the job done a little better than PackageMaker. I think Iceberg isn’t perfect either tho, like how it was non-obvious the Gestalt selector had to be entered in decimal not BCD hex, how if I checked the preflight script box before I selected a script, it wouldn’t select the script. It’s lacking some modernisms like automatic package signing, which PackageMaker has, and while that is something I can manually do, it’s nice to have it automatically part of the process.

I got the installer package created and it works, but geez. How archaic can you get?

Join the discussion!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.