I'm adding a feature to a Mac program to delete its preferences .plist file, and then relaunch with what are effectively "factory settings". However, the customer for this is leery of using external frameworks like Sparkle. I've looked online for sample code, but much of it seems over-complicated (e.g. adding a category to NSApplication). Also, some of it simply won't work in Lion or later, when you can't use some APIs to launch a GUI process from a non-GUI process.
So is there a simple way to have a Mac GUI app relaunch itself?