The problem with the Mac OS X 10.4.10 version number
[Published Thursday, June 28th]
Mac OS X 10.4.10 is the first iterative release of Mac OS X to have 5 digits in its version string (1, 0, 4, 1, 0). It is also the first iterative release of Mac OS X to use the ".10" extension. This is causing some significant issues.
The initial three digits for "10.4.10" are the same as "10.4.1," an earlier release of Mac OS X 10.4 (Tiger). Since the "MAC_OS_X_VERSION_ACTUAL" string (used by Cocoa applications to determine the current OS version) can carry a maximum of four digits, Mac OS X 10.4.10 and and 10.4.1 are both labeled "1041."
This means that some applications recognize Mac OS X 10.4.10's version string as Mac OS X 10.4.1 and refuse to properly run, erroneously thinking that the system version is too old. For instance, the application UNO requires Mac OS X 10.4.4. When running under Mac OS X 10.4.10, it recognizes the Mac OS X version number as 10.4.1 and refuses to operate.
Essentially, the built-in Cocoa method for forbidding an app to run on too low a system breaks against Mac OS X 10.4.10.
We're still searching for a viable method for tricking applications into thinking that the system version is 10.4.9, which would largely obviate this problem.
Feedback? Late-breakers@macfixit.com.
Resources
Like the Microsoft and other programmers no one at the time when they created this that this number will ever get this high. It is strange that Apple programmer never though of this but who ever though of that at the time they created this. I think that Apple programmers will always have a new version of the OS before this ever came up. However Leopard got delays because of the iPhone so they have another 4 months before Leopard is released so Apple is new nervous about any other patches for Tiger until Leopard because of this.
In the case of Y2K, the programmers had two issues; first is limitation on resources which more number namely the number in years more space and at that time RAM and HD space where a premium in the 1970's and 1980's and the second the programmers thought their programs will be obsolete before the century or millennium so they never through going through the next century or millennium.
What is happening to Apple's hardware/software quality control over the past few years? Even allowing for rapid expansion and innovation mistakes, this type of oversight is unforgivable.
I am devoted to Apple products, but no one's patience is infinite!
This has nothing to do with Apple. It's not possible to use MAC_OS_X_VERSION_ACTUAL to check the system version, it's an Xcode build setting variable.
Since I have never had this issue, I am at loss.
Whoa.......big boy.....
There's no problem with the 10.4.10 string aside from developers that try to parse it as a string intentionally. This is wrong.
The correct way for a developer to get the version number of the Mac OS is to use Gestalt(), it always has been. If you use gestaltSystemVersion on 10.4.10, you'll get back 0x1049, which is no big deal (and is likely what ARD is doing). The correct way to get system versions over 10.4.9 and all system versions before 10.4.10 is to use gestaltSystemVersionMajor, gestaltSystemVersionBugFixMinor, and gestaltSystemVersionBugFix together.
But do not say something silly like MAC_OS_X_VERSION_ACTUAL is for Cocoa developers or even a means for Cocoa developers to get the version number.
Open a terminal (/Applications/Utilities/Terminal) and type:
printenv MAC_OS_X_VERSION_ACTUAL
You will see that nothing is returned. Where did anyone get the idea MAC_OS_X_VERSION_ACTUAL was a way to determine the Mac OS X version?
Another option is to use: defaults read /System/Library/CoreServices/SystemVersion ProductUserVisibleVersion
---
iMac G5, 17", 1.8 GHz, 2GB RAM, OS 10.4.10
RE: Why not just go to .11
IF the explanation is correct, then it wouldn't matter what the 5th number is; only the first 4 will be "read." 10.4.19 would be just as problematic.
I assume he was joking, along the lines of Spinal Tap.
- by alansumm June 29, 2007 12:06 AM PDT
- Here's a solution, (translated from <http://www.heise.de/netze/news/foren/go.shtml?read=1&msg_id=12983409&forum_id=119217> - in German)
- Like this Reply to this comment
-
(15 Comments)- Hold the option key and drag /System/Library/CoreServices/SystemVersion.plist to the Desktop (makes a copy)
- in this Desktop copy, change both "10.4.10" strings to "10.4.9" and save
- option-drag the Desktop copy back to /System/Library/CoreServices/ and replace the original
- install the software (e.g. UNO)
- in the Desktop copy change both "10.4.9" strings back to "10.4.10" and save
- drag the Desktop copy back to /System/Library/CoreServices/ and replace the current version
- Finished