Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Mac OS X 10.4.10 wird von einigen Programmen als Mac OS X 10.4.1 erkannt

Wie MacFixIt berichtet, bedeutet die Aktualisierung auf Mac OS X 10.4.10 aufgrund der längeren Versionsnummer für einige Cocoa-Programme einen Rückschritt. Denn die Zeichenkette "MAC_OS_X_VERSION_ACTUAL" zur Versionsprüfung verfügt nur über 4 Stellen, so das sowohl Mac OS X 10.4.1 als auch Mac OS X 10.4.10 als Version ein "1041" liefern. Manche Programme wie beispielsweise UNO verweigern dadurch ihren Dienst, weil sie eine neuere Mac-OS-X-Version als 10.4.1 benötigen und Mac OS X 10.4.10 jedoch als 10.4.1 erkennen. MacFixIt will nun einen Weg suchen, mit dem solche Anwendungen Mac OS X 10.4.10 als Mac OS X 10.4.9 erkennen.

Weiterführende Links:

Kommentare

blutaermer29.06.07 10:54
1. sollten die entwickler einen weg suchen

2. funktioniert uno bei mir
0
DonQ
DonQ29.06.07 10:56
check version
bigger than 10.4.9 smaller than 10.5.
remove version check

an apple a day, keeps the rats away…
0
itsnogood7129.06.07 11:09
Bei mir funktioniert UNO auch mit 10.4.10
0
killercat29.06.07 11:11
Komisch, ich dachte immer Apple ist für derartige Fixes zuständig
0
Prometheus
Prometheus29.06.07 11:13
Aiaiai... So ein Schildbürgerstreich ist eigentlich eher Microsoft-Typisch...
Where is my mind...?
0
Tobsen
Tobsen29.06.07 11:17
Vielleicht mit 104a?
0
Marcel Bresink29.06.07 11:22
Die Versionsnummer 10.4.10 verstößt gegen Apples eigene (alte) Richtlinien für Versionsnummern (siehe auch ).

Apple weiß das. So meldet die Version 10.4.10 an ältere Programme, die Carbon einsetzen, mit Absicht die falsche Versionsnummer 10.4.9 zurück, damit diese Programme richtig laufen. Man kann das z.B. in Apple Remote Desktop sehen, wo in der Inventarliste für Computer, die 10.4.10 verwenden, immer noch die Nummer 10.4.9 angezeigt wird. Das muss so sein, um die Probleme, die durch den "10.4.10-Hack" entstehen, einigermaßen zu begrenzen.

DQ:
Deine Lösungen funktionieren nicht, denn 10.4.10 ist numerisch gelesen nun einmal kleiner als 10.4.9. Die Versionsprüfung zu entfernen, funktioniert nicht, da Programme, die sehr tief ins System eingreifen, genau wissen müssen, um welche Version es sich handelt.

Die korrekte Lösung für neue Programme ist es, die Versiosnummer aus der Datei /System/Library/CoreServices/SystemVersion.plist zu lesen, diese dann in die durch Punkt getrennten Einzelnummern zu zerlegen und auf diesen Einzelnummern Größenvergleiche durchzuführen.
0
Sindbad29.06.07 11:28
Man hätte auch anders weiternummerieren können:
10.4.9 10.4.91
0
axl
axl29.06.07 11:28
DQ
Die hohe Kunst des Programmierens ist halt leider nicht immer so einfach. Du musst erstt noch die Strings an den Punkten aufteilen und dann erst mal checken ob 4 oder 5 und so weiter.

Ausserdem muss der Wert ja irgendwo ausgelesen werden. "Schau mal eben in 'Über diesen Mac' die Versionsnummer nach" funktioniert leider nicht. Und da gibt Apple anscheinend nur die ersten vier Ziffern an. Dumm gelaufen.
isch 'abe gar keinen slogan
0
axl
axl29.06.07 11:31

isch 'abe gar keinen slogan
0
Marcel Bresink29.06.07 11:33
Sorry, noch ein Nachtrag.

Was MacFixIt schreibt, ist - wie eigentlich immer - Unsinn: Der Wert "MAC_OS_X_VERSION_ACTUAL" wird nur während der Kompilation eines Programms verwendet. Ein Programmierer kann mit diesem Wert während der Codeerzeugung steuern, welche Teile seines Programms Codebestandteile aus Mac OS X aufrufen dürfen. So etwas wird nur in dem Spezielfall gebraucht, dass ein Programmierer aus dem gleichen Quellcode verschiedene Fasssungen für unterschiedliche Zielsysteme erstellen will, also wenn er z.B. vorhat, zwei Versionen seines Programms zu erzeugen, eine für 10.4.9 und eine für 10.4.10.

So funktionieren aber übliche Programme nicht. Die meisten Programme lassen sich auf allen Versionen von Mac OS X starten und testen erst zur Laufzeit auf welchem System sie gerade laufen.
0
Rahmenlos
Rahmenlos29.06.07 11:43
Hab UNO schon seit 10.4.6 und deshalb geht das auch, aber ich kann eben nichts ändern!
Also, UNO geht, aber eben nur bedingt.

:apple: :macos:
0
Thomacintosh29.06.07 12:22
Bei Heise ist schon seit 21. Juni eine Lösung für das UNO-Problem zu finden. Mittlerweile ist die auch bei MacFixIt in den Kommentaren aufgetaucht.

/System/Library/CoreServices/SystemVersion.plist kopieren
- in der Kopie beide Strings "10.4.10" in "10.4.9" ändern
- das Original sichern und durch die Kopie ersetzen
- UNO installieren
- Kopie durch Original ersetzen
0
TiBooX
TiBooX29.06.07 14:06
Thomacintosh
So ein Schwachfug
Wie kann man nur am System runfummeln nur weil verschiedene Programmierer eindeutige Bugs in ihre Applikationen eingebaut haben.

Damit reskiert man dann, dass viele weitere unerwartete Probleme auftauchen und Apple könnte sich den ganzen Testaufwand auch sparen.
Und hier heisst es dann wieder das geht nicht oder das und Apple soll noch Schuld sein. *Kopfschüttel*

Es gibt nur einen Lösung: Dem betreffenden Programmiere auf die Füße treten, aber mit Nachdruck, und wenn das nicht hilft dann patcht man das Programm aber niemals das System.

Ich werde jeden der mir mit Problemen auf einem verbastelten System kommt (weil er sich für nen SuperUser hält) zu Mond schießen. Und wenn ich das nur hintenrum rausfinde, dann wirds arg. Das sit eine versprechen.
Ich bin ansonsten sehr hilfsbereit, wenn's um den Mac geht.
People who are really serious about software should make their own hardware [A. Kay]
0
Thomacintosh29.06.07 14:29
Tiboox
Ja Herr Wachtmeister.
Gut daß immer ein Oberlehrer zur Stelle ist, um alle anderen, (natürlich absolut unfähigen Dumm-User) vor sich selbst zu schützen. Wenn du mal mehr lesen als schreiben würdest, wäre dir mit Sicherheit auch aufgefallen, daß die betreffende plist-Datei lt. obiger Anleitung im Anschluß wieder durch die Original-Datei ersetzt wird, und das System somit wieder in den Ausgangszustand versetzt wird.
Die Entwickler von UNO arbeiten derzeit an einer Version die das Problem umgeht - aber da UNO kostenlos ist, kann man denen auch nicht "auf die Füßen treten". UNO ist sowieso ein Hack, der tief ins System eingreift. Also beruhig dich, bevor du wegen so einer Kleinigkeit noch einen Herzanfall erleidest.

0
maxmetzger29.06.07 15:22
seit diesem update funktioniert Photoshop elements 4 auch nicht
mehr !
0
Stefab
Stefab30.06.07 10:59
Tobsen: Genau daran habe ich auch gedacht - soll die normale Versionsnummer eben 10.4.10 sein und die short-Version halt: 104A und fertig.
Hexadezimal kann die Short-Version dann bis 16 gehen. Vermutlich lernen sie draus und mit Leopard kommts dann auch so.

Ich bin zwar kein Cocoa-Programmierer (eher REALBasic), aber "Über diesen Mac" liest ja auch 10.4.10 aus, also sollte das doch kein Problem sein.

Vermutlich gibt es auch 3 einzelne Konstanten, mit denen man das "10" erfahren kann, also Mac OS X - dann das "4" und mit der letzten das "10" - bzw. ist es ein Mac OS X Programm braucht es die erste Nummer noch gar nicht.

Da fragt man dann nach "MajorVersion"=4, "MinorVersion"=10 oder so. Und die MacOSSystem-Konstante ist dann 10, falls man was in Carbon schreibt, sowie sie für OS 9 eben 9 wäre.

Und die Abkürzung: MAC_OS_X_VERSION_ACTUAL kann ja wirklich einfach: 104A ausgeben - zumindest kann man das so mit Leopard einführen, denke ich.


0
Stefab
Stefab30.06.07 11:07
Oder anstatt die Anzahl der Stellen auf 4 zu begrenzen, lässt man diese einfach weg, also 10410 - dabei ist dann auch die Zahl größer als 1049 - zwar wesentlich, aber was solls, wenns dafür funzt. oder wie gesagt eben hexedezimal arbeiten für die letzte Stelle oder auch gleich die vorletzte, am besten, falls Mac OS XI noch nicht fertig ist, dass wir noch ein 10.10 bekommen können.

Und wenn die Konstante: MAC_OS_X_VERSION_ACTUAL eh schon MAC_OS_X enthält ist die 10 am Anfang wohl auch nicht sonderlich wichtig.

MAC_OS_X_VERSION_HEXA = "4A" könnte man einführen - mit leopard ist es dann "50" und geht bis "5F" für den User sichtbar als 10.5.16

Aber ich wette, da gibt es sowieso schon eine ganze Menge andere Wege, die Systemversion abzufragen... zB. eben wird es sicher für jede Zahl zwischen den Punkten eine eigene "Konstante" geben, Variable wäre da wohl der falsche Ausdruck, da ja für jede Systemversion konstant und unveränderbar.
0
Stefab
Stefab30.06.07 11:46
Oder bzw. 2 Strings oder besser Integers:

MAC_OS_X_VERSION_MAJOR von 100 bis 109 oder auch darüber, zB. 1010 oder 1012 - als short (2 bytes)

Und

MAC_OS_X_VERSION_MINOR von 0 bis 255 - ein byte - in der Praxis dann eher 0 bis 12 oder so...
0
Stefab
Stefab30.06.07 11:53
Kann mir beim besten Willen nicht vorstellen, dass es nur die eine Möglichkeit gibt, einen 4-stelligen String, wie eben 1041, um die aktuelle System-Version abzufragen. Irgendein Cocoa-Programmierer hier, der sagen kann, wie das richtig geht?
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.