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?

1 Answer 1


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.

  • Good idea, but the app apparently checks somewhere else. I can see that it reads /System/Library/CoreServices/SystemVersion.plist when starting up, by watching sudo opensnoop output, and the settings definitely took as far as Mac OS X is concerned ("About This Mac" shows the fake version), but the app balks at the same place as before, with the same error message.
    – chbrown
    Jun 10, 2016 at 20:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .