I have a couple of LaunchDaemon installed helper executables that are calling a bash script. As of MacOS 13, these are now showing up as unidentified developer in Login Items which I am trying to resolve.
I have tried setting AssociateBundleIdentifiers in my plist file but the console tells me it is being ignored because bash does not have a Team Identifier.
I believe the fully correct way to resolve this is to switch to the new Service Management API, but my understanding is that would only work on MacOS 13 and would therefore break my app on older versions of MacOS
My questions are:
- is there any other way to make my helper as part of my app's login items that I have missed?
- is there an easy way to make an installer that will work for both newer and older versions of MacOS without having to package two separate versions?
Sample plist file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AssociatedBundleIdentifiers</key>
<array>
<string>com.mycompany.ExampleApp</string>
</array>
<key>Label</key>
<string>com.mycompany.ExampleApp.updater</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/var/root/Library/Group Containers/com.mycompany.ExampleApp/Library/Application Support/update.sh</string>
</array>
<key>StandardOutPath</key>
<string>/var/root/Library/Group Containers/com.mycompany.ExampleApp/Library/update.log</string>
<key>WorkingDirectory</key>
<string>/var/root/Library/Group Containers/com.mycompany.ExampleApp/Library/Application Support/</string>
<key>WatchPaths</key>
<array>
<string>/var/root/Library/Group Containers/com.mycompany.ExampleApp/Library/Application Support/latest.app.zip</string>
</array>
</dict>
</plist>