cormiertyshawn895 / Retroactive

Retroactive has been discontinued. You should transition from Retroactive to supported apps such as Music, iTunes for Windows, iMazing, Photos, Darktable, Lightroom Classic, and DaVinci Resolve.
2.18k stars 117 forks source link

Bundle ID change invalidates Apple's own compatibility fixes #41

Closed rotx closed 3 months ago

rotx commented 4 years ago

Reading https://worthdoingbadly.com/appkitcompat/, it looks like Apple has their own backward compatibility system.

Interestingly, the Aperture specific adjustments seem to still be present in Catalina 10.15.2.

/System/Library/Frameworks/AppKit.framework/Versions/C % strings AppKit | grep -i aperture                                                       
com.apple.Aperture
NSAdjustWindowForAperture
com.apple.share.System.add-to-aperture

By changing the bundle ID, I am wondering what stability issues might be introduced because AppKit/Foundation/CoreFoundation don't adjust for Aperture anymore.

According to the link above, the list as of High Sierra included the methods:

I am wondering whether there is a way to override LaunchServices so the bundle ID can be left alone.

cormiertyshawn895 commented 4 years ago

You raised a good point.

Unfortunately, there's no good way to override the bundle identifier check without requiring users to disable System Integrity Protection. There are a few options without requiring that, though.

The easiest one is to wrap the entire Aperture app with its original bundle identifier intact under a loader .app bundle. The loader app executable can be a shebang script that launches Aperture's main executable.

In fact, this is what Retroactive does for iTunes right now. The disadvantage is that file association becomes messier, and accessing removable volumes such as SD cards may require users to manually drag /bin/bash into Full Disk Access.

cormiertyshawn895 commented 3 months ago

Retroactive has been discontinued, and does not support macOS Sequoia or later. You should transition from Retroactive to a wide range of supported apps, many of which are built into macOS or free to download. Learn how to transition from Retroactive to supported apps.