OSX Yosemite and Applications that Count a.k.a The Version Rollback Issue

Submitted by maestro on Sat, 10/18/2014 - 06:04

If you have recently installed the new Apple OSX 10.10 a.k.a Yosemite?

I did. And it looks very nice and sleek. Great job Apple.

Except that the numbering sequence of version 10.10 caused a giant issue in many other applications. In a sense, Apple was just incrementing from version 10.9 to 10.10 ... a logical thing to do. Unfortunately, confusion starts happening when a software sees 10.10 as 10.1 

In my case, it broke a mobile development environ called Titanium Studio and I was getting the following error message:

The JVM shared library "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib"
does not contain the JNI_CreateJavaVM symbol.

 

Java Error message stating that the JVM shared library libjvm.dylib does not contain the JNI_CreateJavaVM symbol

 

The solution:

Install Java from the Apple's support site at http://support.apple.com/kb/dl1572

Other Possible Solutions:

Many sources on internet are claiming that the root of the issue seems to be in the way different applications are interpreting the version number.

If this the case for you, then the solution might be to edit the following file (using sudo privilege):

/System/Library/CoreServices/SystemVersion.plist

Change the version in there to something that will be less ambigious. In my case, I changed it from 10.10 to 10.101. Don't wory about future version conflicts. At the next major OSX update, this file will be rewritten anyway.  

The original content will look similar to ...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>ProductBuildVersion</key>
        <string>14A389</string>
        <key>ProductCopyright</key>
        <string>1983-2014 Apple Inc.</string>
        <key>ProductName</key>
        <string>Mac OS X</string>
        <key>ProductUserVisibleVersion</key>
        <string>10.10</string>
        <key>ProductVersion</key>
        <string>10.10</string>
</dict>
</plist>

And the modified one can look similar to ...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>ProductBuildVersion</key>
        <string>14A389</string>
        <key>ProductCopyright</key>
        <string>1983-2014 Apple Inc.</string>
        <key>ProductName</key>
        <string>Mac OS X</string>
        <key>ProductUserVisibleVersion</key>
        <string>10.101</string>
        <key>ProductVersion</key>
        <string>10.101</string>
</dict>
</plist>

Please do not just copy and past the entire thing. You should rather manually adjust the version numbers.

Enjoy.