Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   macOS Programme unter High Sierra oder älter (https://www.delphipraxis.net/209373-macos-programme-unter-high-sierra-oder-aelter.html)

Harry Stahl 28. Nov 2021 01:16


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?

TurboMagic 28. Nov 2021 08:29

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.

MEissing 28. Nov 2021 09:55

AW: macOS Programme unter High Sieara oder älter
 
10.4.x sollte High Sierra noch unterstützen.
https://docwiki.embarcadero.com/Plat...s/en/Main_Page

Harry Stahl 28. Nov 2021 10:30

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).

MEissing 28. Nov 2021 11:03

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von Harry Stahl (Beitrag 1498325)
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?

Ja. Das kann möglich sein, muss es aber nicht.
(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.

Harry Stahl 28. Nov 2021 11:28

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von MEissing (Beitrag 1498327)
Zitat:

Zitat von Harry Stahl (Beitrag 1498325)
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?

Ja. Das kann möglich sein, muss es aber nicht.
(Ich weiß zZ nicht, ob es dafür einen technischen Grund gibt)

Es spricht ja nichts dagegen, daß man, wenn man für ein altes (High) Sierra kompilieren möchte, auch eine alte Delphi Version benutzt.

Klar, zur Not kann ich mit 10.4 (ohne Probleme) oder 10.3 kompilieren (da muss ich aber schon was ändern, da ich ab 10.4 managed records intensiv genutzt habe), aber optimal wäre es auch, wenn es mit Delphi 11 machbar wäre.

Zitat:

Zitat von MEissing (Beitrag 1498327)
Apple unterstützt nur das aktuelle macOS und die beiden Vorgänger. Daran richten wir (Embarcadero) uns auch aus.

Ja, aber das wird ab 2022 nicht mehr ausreichen. Man kann davon ausgehen, dass Hardware- und Software-Hersteller (aber vor allem die Hardware-Hersteller) bis zu 5 Jahren verpflichtend Updates für die Geräte anbieten müssen, Apple wird seine Politik da ändern müssen (und andere auch).

Siehe Thread hier: https://www.delphipraxis.net/208494-...2-umgehen.html

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.

Harry Stahl 28. Nov 2021 21:22

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:
{$IFDEF MACOS}
  if (TOSVersion.Major <= 10) and (TOSVersion.Minor <=13) then begin
    GlobalUseMetal := false;
 end;
{$ENDIF}
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).

Da funktioniert CrossVCL mit Delphi 10.4 oder 11 tatsächlich erst ab Mojave. Bei 10.3 ist es auch nicht anders.

Rollo62 29. Nov 2021 11:33

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von Harry Stahl (Beitrag 1498325)
... och ist ja nicht so wichtig, die meisten MAC-Anwender steigen ja eh immer auf die neueste OS-Version um.

Ja das Problem habe ich auch schon festgestellt, das bei Apple die Hardware relativ schnell veralten kann.
Vielleicht ist diese Seite da hilfreich.

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:

Bernhard Geyer 29. Nov 2021 12:34

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von Rollo62 (Beitrag 1498356)
Ok, man könnte jetzt sagen das 7 Jahre Lebensdauer auch genug sind, aber bei Windows war es (bisher) weniger problematisch aktuell zu bleiben.

Laptop - 1 1/2 Jahre alt - (bisher) Kein Update auf Win11 möglich, da falscher AMD-CPU

Rollo62 29. Nov 2021 14:13

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1498359)
Laptop - 1 1/2 Jahre alt - (bisher) Kein Update auf Win11 möglich, da
falscher AMD-CPU

Ja das tut mir Leid.
M$ ist wohl auf dem besten Wege Apple (wenigstens in der Beziehung) einzuholen.

Bernhard Geyer 29. Nov 2021 14:20

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von Rollo62 (Beitrag 1498360)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1498359)
Laptop - 1 1/2 Jahre alt - (bisher) Kein Update auf Win11 möglich, da
falscher AMD-CPU

Ja das tut mir Leid.

Kein Problem. Win10 läuft ja noch ein paar Jahre.
Und vermutlich länger Support als wie die Laptop normalerweise halten (auch wenn dieser praktisch stationär eingesetzt wird

Zitat:

Zitat von Rollo62 (Beitrag 1498360)
M$ ist wohl auf dem besten Wege Apple (wenigstens in der Beziehung) einzuholen.

MS könnte es mit den Anforderungen Win11 etwas übertreiben, so das Win10 (ähnlich XP) länger als nötig unterstütz werden muss.

Commander Tom 29. Nov 2021 14:24

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von Rollo62 (Beitrag 1498356)

Ja das Problem habe ich auch schon festgestellt, das bei Apple die Hardware relativ schnell veralten kann.
Vielleicht ist diese Seite da hilfreich.

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)).

Wenn man etwas basteln will und das Risiko nicht scheut, kann man auch ältere Geräte fit für BigSur oder Monterey machen. Es gibt dazu genug Seiten, die zeigen, wie das geht, z.B. https://macandegg.de/2021/09/macos-b...-installieren/

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.

Harry Stahl 29. Nov 2021 15:46

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.

Harry Stahl 30. Nov 2021 15:11

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:
https://quality.embarcadero.com/browse/RSP-36400

Für Windows 11 ist auch noch Anpassungsbedarf:
https://quality.embarcadero.com/browse/RSP-36176

jaenicke 30. Nov 2021 15:18

AW: macOS Programme unter High Sieara oder älter
 
Zitat:

Zitat von Harry Stahl (Beitrag 1498440)
Für Windows 11 ist auch noch Anpassungsbedarf:
https://quality.embarcadero.com/browse/RSP-36176

Da gibt es ja auch noch andere Probleme, mal schauen was daraus wird.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1498359)
Laptop - 1 1/2 Jahre alt - (bisher) Kein Update auf Win11 möglich, da falscher AMD-CPU

Leider achten viele nicht so sehr auf die CPU beim Kauf, dabei ist diese doch sehr wichtig. Leider gibt es auch noch viele Geräte mit alten und/oder langsamen CPUs neu zu kaufen, ohne dass man das so einfach erkennen kann, wenn man nicht genau schaut was drin steckt.

Die Haupt-Komponenten meines PCs sind mittlerweile 4 Jahre alt und ich konnte problemlos auf Windows 11 aktualisieren.

Harry Stahl 30. Nov 2021 16:18

AW: macOS Programme unter High Sieara oder älter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von jaenicke (Beitrag 1498441)
Zitat:

Zitat von Harry Stahl (Beitrag 1498440)
Für Windows 11 ist auch noch Anpassungsbedarf:
https://quality.embarcadero.com/browse/RSP-36176

Da gibt es ja auch noch andere Probleme, mal schauen was daraus wird.

Wobei ich gerade eine Lösung für MacOS auch nicht wüsste, da diese Infos, die TOSVersion zurückliefert so in der SystemVersion.plist drin steht (siehe anlg. Screenshot).

Gibt es alternativ keine API-Funktion, die hier evtl. ein anderes Ergebnis zurückliefert?

philipp.hofmann 30. Nov 2021 18:08

AW: macOS Programme unter High Sierra oder älter
 
Zitat:

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.
Bei mir stimmt es: OS-Name/Version macOS 12.0 (und ich habe 12.0.1).

Harry Stahl 30. Nov 2021 19:24

AW: macOS Programme unter High Sierra oder älter
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1498455)
Zitat:

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.
Bei mir stimmt es: OS-Name/Version macOS 12.0 (und ich habe 12.0.1).

Wow, das ist ja interessant und zugleich mal wieder eines der tollen Rätsel, an denen man so gerne rumkaut...

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.

philipp.hofmann 1. Dez 2021 10:30

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.

Harry Stahl 1. Dez 2021 22:26

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:

https://eclecticlight.co/2020/08/13/...snt-so-simple/

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...

philipp.hofmann 2. Dez 2021 12:19

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 10:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz