![]() |
macOS Programme unter High Sierra oder älter
Gerade stelle ich fest, dass die neueren FMX (oder CrossVCL) Programmversionen, die mit Delphi 10.4 oder 11 erstellt worden sind, nicht mehr unter macOS High Sierra oder älter laufen.
Grund ist - auch dann, wenn mal GlobalUseMetal auf false setzt - das Programm versucht eine Metal-Library zu laden (die ja erst ab Mojave auf macOS zu finden ist). Ist das schon mal jemanden begegnet und weiß evtl. schon eine Abhilfe? |
AW: macOS Programme unter High Sieara oder älter
Ist dieses Problem des Ladens einer Meta Bibliothek trtz deaktiviertem Schalter schon in QP erfasst?
Falls nicht, bitte tun. |
AW: macOS Programme unter High Sieara oder älter
|
AW: macOS Programme unter High Sieara oder älter
OK, ich muss mich insoweit korrigieren, dass es ein Sierra (und nicht High Sierra) System war, auf dem ich das feststellte.
Werde gleich aber noch mal ein High Sierra installieren und testen, ob da die Binary läuft. Aber eigentlich sollte es doch auch möglich sein, dass die mit Delphi 10.4 und Delphi 11 erzeugten Programme auch auf Sierra oder älter laufen, oder? Man sollte vielleicht meinen, och ist ja nicht so wichtig, die meisten MAC-Anwender steigen ja eh immer auf die neueste OS-Version um. Da soll man sich aber nicht täuschen, das ist oft nicht der Fall, da das die Hardware dann nicht mehr mit macht. So hat z.B. meine Tochter mein MAC Book Air (aus 2011) vor ein paar Jahren abgestaubt, da Apple die Installation neuerer OS da nicht mehr zulässt. Das Gerät verrichtet aber noch absolut zuverlässig seinen Dienst und läuft sehr flüssig. Inzwischen ist dafür in D - insbesondere bei Studenten - ein regelrechter Nachfrage-Markt für Gebraucht-Geräte entstanden. Man hört da oft auch das Umweltschutz-Argument (kein neues kaufen, solange alte noch nutzbar sind). Die Geräte (z.B. iMacs) aus 2011-2014 sehen gut aus und funktionieren oft noch recht gut, lassen sich aber nicht mehr auf die neuesten OS updaten. Unter Sicherheitsaspekten darf man darüber nicht nachdenken, weil die ja auch keine Updates mehr erhalten. Aber wie auch immer, es ist halt Fakt, dass viele Leute dennoch - aus welchen Gründen auch immer - noch ältere OS verwenden (müssen). Mein Mac-Mini aus 2014 ist seit Big Sur eigentlich nicht mehr nutzbar (alles sehr zäh, bei jedem Klick muss man Sekunden warten, bis was passiert), daher habe ich den jetzt halt downgegradet, um das Gerät zumindest als Test-Device für ältere macOS zur Verfügung zu haben (ja und ich habe mir ein Mac-Mini mit M1-Prozessor geordert, um wieder UptoDate dabei sein zu können). |
AW: macOS Programme unter High Sieara oder älter
Zitat:
(Ich weiß zZ nicht, ob es dafür einen technischen Grund gibt) Apple unterstützt nur das aktuelle macOS und die beiden Vorgänger. Daran richten wir (Embarcadero) uns auch aus. Es spricht ja nichts dagegen, daß man, wenn man für ein altes (High) Sierra kompilieren möchte, auch eine alte Delphi Version benutzt. |
AW: macOS Programme unter High Sieara oder älter
Zitat:
Zitat:
Siehe Thread hier: ![]() Und im aktuellen Koalitionsvertrag steht im Kapitel über "Nachhaltigkeit in der Digitalisierung": "Ersatzteile und Softwareupdates für IT-Geräte müssen für die übliche Nutzungsdauer verpflichtend verfügbar sein." Ich gehe davon aus, dass man da noch mal nachschärfen wird. |
AW: macOS Programme unter High Sieara oder älter
Ich muss mich erneut korrigieren (man kann ja bei diesen ganzen Versionen FMX / CrossVCL) schon mal durcheinander geraten.
Erst mal die gute Nachricht: Mit Delphi 10.4 oder 11 erstellte Apps kann man auf Siera oder neuer laufen lassen. Um zu erreichen, dass es auch auf Sierra und High Sierra läuft, muss man folgendes in die DPR-Datei, direkt hinter dem Begin schreiben:
Delphi-Quellcode:
Das Problem beschränkt sich doch nur auf CrossVCL (wie gesagt, man gerät schon mal durcheinander, den laufenden Programmen sieht man au den ersten Blick erst mal nicht an, ob mit FMX oder CrossVCL erzeugt).
{$IFDEF MACOS}
if (TOSVersion.Major <= 10) and (TOSVersion.Minor <=13) then begin GlobalUseMetal := false; end; {$ENDIF} Da funktioniert CrossVCL mit Delphi 10.4 oder 11 tatsächlich erst ab Mojave. Bei 10.3 ist es auch nicht anders. |
AW: macOS Programme unter High Sieara oder älter
Zitat:
Vielleicht ist ![]() Demnach habe ich auch mein erstes Macbook Pro ( Anfang 2013, als ich mit CrossPlatform angefangen bin ), was eigentlich noch top in Schuss ist, sich aber leider nicht mehr auf BigSur updaten lässt: (Hardware-Vorraussetzung MacBook Pro (Retina, 15", Ende 2013)). Ok, man könnte jetzt sagen das 7 Jahre Lebensdauer auch genug sind, aber bei Windows war es (bisher) weniger problematisch aktuell zu bleiben. Ob es sich da lohnt zig tausend Euro für neue Hardware auszugeben muss man halt abwägen. Obwohl ich gerne einen M1 MAX hätte macht es dirchaus Sinn nur ältere, gebrauchte, Mini-Systeme zu ordern, und das Geld lieber in seinen Windows-PC zu stecken. Wenn doch nur Intel/AMD nicht so lahm wären :stupid: |
AW: macOS Programme unter High Sieara oder älter
Zitat:
|
AW: macOS Programme unter High Sieara oder älter
Zitat:
M$ ist wohl auf dem besten Wege Apple (wenigstens in der Beziehung) einzuholen. |
AW: macOS Programme unter High Sieara oder älter
Zitat:
Und vermutlich länger Support als wie die Laptop normalerweise halten (auch wenn dieser praktisch stationär eingesetzt wird Zitat:
|
AW: macOS Programme unter High Sieara oder älter
Zitat:
![]() Ich habe auf diesem Weg schon einige ältere Geräte fit gemacht für neue Apple-Betriebssysteme, ist halt von Apple unsupported, aber funktioniert, wenn man sich das zutraut. |
AW: macOS Programme unter High Sierra oder älter
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich hatte gestern noch Eugene kontaktiert, heute gibt es schon eine neue Version 1.63 von CrossVCL, die das Problem behoben hat (siehe anliegenden About-Dialog, unter macOS 10.13.6 ausgeführt - das ist die letzte High Sierra Version), erzeugt mit Delphi 11.
Wie man erkennen kann lasse ich nun in meinen About-Dialogen neben der genutzen OS-Version nun auch immer die benutzte Delphi-Version und das Framework anzeigen (CVCL = CrossVCL). Das Erzeugen der VCL-Anwendungen mit CrossVCL für Linux oder MACOS funktioniert inzwischen so gut, dass man erst mal überlegen, muss, habe ich das Programm jetzt mit FMX(Linux) oder CrossVCL erstellt? Mit den erweiterten Informationen im Dialog sehr ich direkt, was Sache ist. Die meisten der Programme sind in zwischen natürlich unter FMX erstellt, aber ein paar VCL-Programme eben doch mit CrossVCL, weil die Umstellung zuviel Arbeit gewesen wäre oder andere Besonderheiten hatte. |
AW: macOS Programme unter High Sierra oder älter
Was mir nun unter macOS Monterey auffiel:
Die Rückgabe von TOSVersion ist falsch. Sie liefert "Mac OS X (Version 10.16.0)" zurück, müsste aber "macOS 12 (Version 12.01.0) in meinem Falle sein. Apple nennt sein System seit BigSur nicht mehr Mac OS X und hat als Major-Versionsnummmer nicht mehr 10, sondern 11 für BigSur und unter Monterey ist es 12. Hier ein entsprechende Fehlerreport: ![]() Für Windows 11 ist auch noch Anpassungsbedarf: ![]() |
AW: macOS Programme unter High Sieara oder älter
Zitat:
Zitat:
Die Haupt-Komponenten meines PCs sind mittlerweile 4 Jahre alt und ich konnte problemlos auf Windows 11 aktualisieren. |
AW: macOS Programme unter High Sieara oder älter
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Gibt es alternativ keine API-Funktion, die hier evtl. ein anderes Ergebnis zurückliefert? |
AW: macOS Programme unter High Sierra oder älter
Zitat:
|
AW: macOS Programme unter High Sierra oder älter
Zitat:
Steht das so auch in der Datei bei Dir auf dem MAC drin, wie in meinem Screenshot gezeigt? Auf dem MAC Mini war zunächst ein BigSur installiert, das habe ich auf Monterey upgedatet. |
AW: macOS Programme unter High Sierra oder älter
Bei mir steht in SystemVersion.plist korrekterweise 12.0.1 drinnen.
Mir ist dein Screenshot aber auch unklar, dieser ist doch auch von einem MacOS 10.16-System gemacht. Zumindest steht es so in der oberen Windows-Leiste. |
AW: macOS Programme unter High Sierra oder älter
Also, es hat sich herausgestellt, das ist kein Bug in Delphi, sondern ein "Feature" in macOS seit BigSur.
Erklärung unter dem QR-Report, den ich oben gepostet habe oder auch in diesem Artikel: ![]() Letztlich mal wieder ein schönes Beispiel dafür, wie undurchdachte Aktionen aus dem Marketing-Bereich sich problematisch auf die ganze Software-Architektur auswirken kann... |
AW: macOS Programme unter High Sierra oder älter
Naja, hier haben es sich ja Techniker mit einem durchaus nachvollziehbaren Hintergedanken ausgedacht und man muss es "nur" wissen.
Da kommt man auch maximal drauf, wenn man bedenkt, dass es 10.16 ja nie gab. Damit stimmt deine Formulierung ja auch in beiden Fällen (da es ein 9.14 nie gab), ich habe es bei mir nur so angepasst, dass es bei IOS nicht greift:
Delphi-Quellcode:
{$IF defined(MACOS) and not defined(IOS)}
if (TOSVersion.Major <= 10) and (TOSVersion.Minor <=13) then begin GlobalUseMetal := false; end; {$ENDIF} |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz