The solution is going to be moving logic (and Apple Events) back into the main app, still running the socket server XPC service, but forwarding messages to the server which remote clients can receive. Luckily most of the code will still work, I just need to change how it all fits together.