Pregunta

On July 2009, Apple discontinued Shake. No direct application's replacement was announced by Apple, but some features (stabilize and optical flow estimation, to name a few) are now available in Final Cut Pro X 10.4 and Motion 5.4 in 2018.

Apple Shake was built on 32-bit Carbon API. I surely understand it's not 64-bit Cocoa API, these APIs are different. But Carbon.framework is still included in /System/Library/Frameworks/ in High Sierra, Sierra or El Capitan, and great old apps (such as Shake, Color, Soundtrack Pro) can use it.

I'm still using Shake in High Sierra launching shake via Terminal app:

enter image description here

enter image description here

But I can't (for obvious reason) launch Shake via clicking its icon in Applications folder:

enter image description here

So I have two questions:

  1. What should I do to bypass this OS limitation and to make Shake run after clicking its icon in Applications folder or on Dock?

  2. If the first is impossible, how to get rid of white crossed-out circle overlay on Shake's icon (regular icon replacement isn't working in this case)?

P.S.

I FOUND POSSIBLE SOLUTION (thanks to Thomas Voßen): Shake on Mac OS X 10.11.6

  1. Make a duplicate of Shake.
  2. Select "Show Package Contents"
  3. Go to the "Contents" folder and open Info.plist. Xcode has a plist editor.
  4. Edit the entry com.apple.shake and change it to something like com.apple.shake4.
  5. Save the plist file.

Now it's possible to start Shake with a double click from the Finder in High Sierra 10.13.5.

But there's no Info.plist file in Contents folder.

¿Fue útil?

Solución 3

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.

enter image description here

I can run it not only from Launchpad but also via Terminal as well. It simultaneously allows me to run multiple instances of Shake.

enter image description here

Otros consejos

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

  1. Right-click Shake.App
  2. Go to Show Package Contents.
  3. Go to Contents --> MacOS --> shake (select shake not tshake);
  4. Double-click shake. It should first open a Terminal Window and then Shake should be running.
  5. 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:

  1. Launch Automator (usually found within your Applications folder)
  2. Go to File > New
  3. Select Application and click Choose.
  4. Above the second column (more on the lefthand side) you'll see a search field at the top of a long list
  5. Type "Run" in the field to filter the list
  6. One of the options will be Run Shell Script
  7. Double-click on this option
  8. This will add the Run Shell Script window on the right.
  9. Now configure and enter the script you need to replicate what you're already doing
  10. 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a apple.stackexchange
scroll top