MacOS – Pretend to be specific Mac OS X version when running app

applicationscompatibilitymacos

I've purchased a Mac OS X app (outside the App Store) that seems to have arbitrary limitations based on the Mac OS X version. It is fully functional on El Capitan, but has a few features that it simply won't allow on Mavericks. One of these features is pretty basic — reading / writing a preferences file — so I'm guessing the developer simply wanted to narrow down the range of testing scenarios when implementing it, rather than it actually requiring Yosemite / El Capitan functionality.

Question: Is there a way to start a Mac OS X app in a manipulated environment such that I can supply specific values of my own choosing when the application calls methods like [[NSProcessInfo processInfo] operatingSystemVersion] or isOperatingSystemAtLeastVersion or whatever?

Best Answer

I know for one app that had a similar problem with we were able to get it to work by modifying /System/Library/CoreServices/SystemVersion.plist

I would say that is NOT a recommended approach. However, you may be able to do something tricky so that when your app environment reads that plist it gets a different version then the rest of the system.