Cannot fully use Apple Shake application in macOS 10.13 High Sierra
Your question answers itself.
Apple Shake was built on 32-bit Carbon API. I surely understand it's not 64-bit Cocoa API
Leaving aside the 32 bit versus 64 bit argument; Cocoa is entirely different than Carbon. It's not going to run because the APIs that Shake is referring to (Carbon) are not compatible with what you are running now (Cocoa).
It's important to note that Carbon was deprecated in 2012 with the release of Mountain Lion (OS X 10.8.x). Remember, why and when Apple adds/removes features is entirely their prerogative.
In 2012, with the release of OS X 10.8 Mountain Lion, most Carbon APIs were considered deprecated. The APIs are still accessible to developers and all Carbon applications will run, but the APIs will no longer be updated.
As for Shake running in Terminal, this is an entirely different scenario - Cocoa and Carbon do not come into play - it's strictly a text based interface.
UPDATE: After a bit of research, I discovered two things:
Shake has been relegated to "incompatible software" and Finder will not launch it. Period.
There's a workaround (see below) to get it functional in El Capitan because the Carbon libraries are still included, though deprecated. Note: This has not been tested/confirmed in Sierra/High Sierra. As this is deemed "Incompatible Software" by Apple, there's no guarantee that the workaround will fully work or for how long. YMMV.
Work Around
- Right-click Shake.App
- Go to Show Package Contents.
- Go to Contents --> MacOS --> shake (select
shake
nottshake
); - Double-click
shake
. It should first open a Terminal Window and then Shake should be running. - Create an alias (a shortcut) of the file and place it whenever you want. Launchpad will not be able to see it, though you can have the shortcut/alias in your Applications folder.
This is me thinking out aloud, so to speak, but one thing also worth trying is to use either AppleScript or Automator to create an application to do what you're now doing manually via Terminal. Once you've done that, adding the application to your Applications folder will make it available to Launchpad, the Dock, etc.
I'm not sure how familiar you are with either AppleScript or Automator, but using Automator as an example the process would broadly be along these lines:
- Launch Automator (usually found within your Applications folder)
- Go to File > New
- Select Application and click Choose.
- Above the second column (more on the lefthand side) you'll see a search field at the top of a long list
- Type "Run" in the field to filter the list
- One of the options will be Run Shell Script
- Double-click on this option
- This will add the Run Shell Script window on the right.
- Now configure and enter the script you need to replicate what you're already doing
- Go to File > Save (or use commandS) to save this as an application
Now you should be able to double-click on the application you've created to launch Shake. You can also change the application's icon to whatever you want, add it to the Dock, etc. This will also be available in Launchpad.
NOTE: - I'm not sure if I've still got Shake installed on one of my Macs, so I haven't tested this to make sure it'll work with Shake specifically, but in theory it should be fine based on what you're already doing.
It works in macOS 10.13.5 High Sierra. I've made an Info.plist
and added these lines to it:
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>Shake</string>
<key>CFBundleGetInfoString</key>
<string>Shake version 4.1.1</string>
<key>CFBundleIconFile</key>
<string>Shake</string>
<key>CFBundleIdentifier</key>
<string>com.apple.shake4</string>
<key>CFBundleName</key>
<string>Shake</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
</dict>
</plist>
Carbon API, as well as Cocoa API, is tightly integrated with low-level Core Foundation API (CF
).
Here's useful information about Bundles
in macOS and iOS:
Bundle Programming Guide – About Bundles
Bundle Programming Guide – Bundle Structures
Now, clicking Shake's icon on Dock I can launch Shake in High Sierra's GUI.
I can run it not only from Launchpad but also via Terminal as well. It simultaneously allows me to run multiple instances of Shake.