Symlink works on my Mac but not other Macs, here's what I'm doing..?

My installer’s symlink works fine on my Mac, but when I tested it on another Mac, the link did not work.

Here’s how it looks on my Mac:

Here’s how it look on the other Mac:
Screenshot 2024-02-15 085657

Here’s how I made the Symlink in Terminal:
ln -s ~/Library/Audio/Plug-Ins/Components /path/to/symlink/location

(note the ~ , this I understand to mean “current user who is running the installer”)

I then copy the symlink that has been created in the /location folder to my DropDMG preparation folder where my .component binary file is, and drag that preparation folder onto DropDMG. I’ve also freshly dragged the binary and symlink contained in that folder onto DropDMG’s layout screen at that point.

Am I doing something wrong in this process to make the other Mac’s symlink fail?

When you asked about this before, it looked like you were creating symlinks with absolute paths to global folders like /Library/Audio/Plug-Ins/Components. That should work.

Your example here uses a path in the home directory, and that won’t work on another Mac. There is no ~ with symlinks. The shell will expand that to the name of your home folder before passing it to ln, so you’ll end up with a symlink that only works on a Mac with the same username. It is not possible to make a “symlink relative to the home folder.”

But won’t this Terminal command (without the ~) point to the Components folder for All Users , or not ?
That’s why I initially altered it to include the ~

ln -s /Library/Audio/Plug-Ins/Components /path/to/symlink/location

I don’t want to install the .component so all users of the Mac can have access to it, just the current user who is running the installer. What’s the right symlink command to create a link to the current user components folder?


There is no way to do that with symlinks. If that’s really what you need, it sounds like you need to build an installer or have your app copy its own files to the proper location.

Just wondering, could I install to /Library/Audio/Plug-Ins/Component. and then run a script afterwards to move the .component binary from there to ~/Library/Audio/Plug-Ins/Component

Or are .dmg files not able to run scripts after install?

They do not auto-run scripts, but you could include a script or installer app and ask the user to run it.