Don't know my typeApplSignature to send Apple Events

I am developing a new version of our product with key differences from the previous version. The previous version is developed in objective-c with an xcode project. We decided to evolve and develop with nodejs, npm and electron.

I am in charge of Apple Events development for our app. I have developed a native module for this. Events handling works correctly. I have been testing simple events with AppleScripts and handler functions are installed and called correctly.

However, our client applications send apple events using the AESendMessage method and the typeApplSignature as targetDescriptor. My problem is that I do not know where the application defines this signature. When I run my tests, I receive code -600 (process not found) as a result. The problem is not in the clients code since it works against the previous version.

I have tried to navigate through the code of the old app and I can't find any solution there. I have also been searching the internet I do not find anywhere where this is described. I assume am missing a simple step when building the app, where this identifier should be defined.

All this development is being done in a 10.14.1 Mac OS.

Accepted Reply

typeApplSignature is the creator type code (OSType, aka 'four-char-code') from classic Mac OS days. Modern macOS has some legacy support for it (see CFBundleSignature), but your client apps really ought to be using bundle ID (typeApplicationBundleID) or other modern identifier by now.

Replies

You seem to have asked this question via multiple channels, and I’ll answer it via one of the others (I’ve not included a link because it’s not public). Feel free to post a summary of the result here once we’re done.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

typeApplSignature is the creator type code (OSType, aka 'four-char-code') from classic Mac OS days. Modern macOS has some legacy support for it (see CFBundleSignature), but your client apps really ought to be using bundle ID (typeApplicationBundleID) or other modern identifier by now.