Your helper application is isolated. Thus, it cannot register the mach service dynamically, although Xcode allows it to be used for debugging.
However, when you add your helper application to the input elements (using SMLoginItemSetEnabled ()), startd automatically registers the mach service for the name with its package identifier.
Now your main application is isolated. Therefore, random messaging is not allowed. The only way to make it work is to add a temporary permission for the search.
Since 10.7.4. Apple introduced application group rights as a solution for this case, when the application must interact with the supporting application.
Both applications must have the same rights to application groups. It can be any value, but Apple requires this value to begin with your Team identifier (for example, Team-id.myApp). Then, the ID of your supporting application should start with the same right (for example, Team-id.myApp.myHelperApp). After that, your main application can freely communicate with your auxiliary application using the XPC connection with the service named with the identifier of the auxiliary application package (i.e. Team-id.myApp.myHelperApp). In addition, these two applications will share access to the group container folder named with the right of the application group (e.g. ~ / Library / Group Containers / Team-id.myApp), which you must manually create if you need it.
Samir source share