Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Anfängerfrage: Bereitstellen für OS X (https://www.delphipraxis.net/183331-anfaengerfrage-bereitstellen-fuer-os-x.html)

P_G 2. Jan 2015 11:16

Anfängerfrage: Bereitstellen für OS X
 
Ich habe eine Verständnisfrage zum Thema Bereitstellen für OS X: Ich habe ein FMX-Programm geschrieben, das unter Win32 und Win64 fehlerfrei funktioniert. Jetzt fragte mich ein Freund, ob ich ihm das nicht für OS X kompilieren kann. Da es sich nur um einen einzigen Fall handelt, bin ich natürlich nicht daran interessiert, mir einen Mac zum Testen zuzulegen. Aber spaßeshalber habe ich ihm das Programm unter XE5 trotzdem mal kompiliert. Ich habe einen Ordner namens ‚Test.app‘ erstellt. Darin einen Ordner namens ‚Contents‘ in welchem sich die Ordner ‚MacOS‘ und ‚Resources‘ befinden. Im ‚Contents‘-Ordner sind die Dateien ‚Entitlements.plist‘ und ‚Info.plist‘. Im ‚Resources‘-Ordner steckt das Icon ‚Test.icns‘; im ‚MacOS‘-Ordner die ‚Test‘-Exe-Datei und libcgunwind.1.0.dlyb.
Eigentlich meine ich, alles beachtet zu haben, aber das Programm startet unter OS X bei Doppelklick auf Test.app nicht, bzw. das Icon leuchtet einmal kurz auf – dann wird das Programm terminiert. Mein erster Gedanke war, dass die Software natürlich nicht signiert ist. Kann es daran liegen? Wenn ja – lässt sich das umgehen (evtl. indem die entsprechenden Sicherheitsbestimmungen außer Kraft gesetzt werden? Windows warnt mich ja auch, wenn ich eine unsignierte Exe aus dem Internet starten möchte – allerdings erlaubt Windows nach Nachfrage den Start, ohne ungefragt abzubrechen!)
Unterläuft mir hier irgendwo ein Gedankenfehler? Bin für Anregungen dankbar!

Uwe Raabe 2. Jan 2015 11:47

AW: Anfängerfrage: Bereitstellen für OS X
 
Zitat:

Zitat von P_G (Beitrag 1285166)
Da es sich nur um einen einzigen Fall handelt, bin ich natürlich nicht daran interessiert, mir einen Mac zum Testen zuzulegen.

Dann bietet sich dieser Service an: MacinCloud (im Zusammenhang mit Delphi siehe hier), da ist der PA-Server für XE4 - XE7 gleich drauf.

Oder frag doch mal deinen Freund, ob er dir seinen Mac zum Testen zur Verfügung stellt. Ich kenne dein Programm jetzt nicht, aber auch mein erstes OSX-Programm wollte nicht auf Anhieb so wie ich mir das gedacht hatte.

P_G 2. Jan 2015 12:35

AW: Anfängerfrage: Bereitstellen für OS X
 
Danke für die Antwort.
Macincloud hatte ich auch schon in Erwägung gezogen, dann aber erstmal verschoben, weil auch kostenpflichtig (auch wenn der Preis gut ist...)
Mir ging es aber mehr um die Frage, ob ich etwas Grundlegendes falsch gemacht habe: Wenn ich die von Delphi generierten Dateien wie beschrieben in eine OSX-Ordner-Struktur bringe - lässt sich dann die Programmterminierung nur durch ein Softwareproblem erklären, oder kann es an den Sicherheitseinstellungen von OS X für nichtsignierte Software liegen?
Wenn Ersteres der Fall ist, so wäre es ja eigentlich ein FMX-Problem, weil die Software unter Windows fehlerfrei läuft und FMX ja eigentlich keine Methoden zur Verfügung stellen sollte, die unter Windows laufen, nicht aber auf anderen Plattformen.
Ist Letzteres der Fall, wie umgeht man dieses Problem?

Phoenix 2. Jan 2015 12:42

AW: Anfängerfrage: Bereitstellen für OS X
 
Wenn das Sicherheitssystem von OS X den Appstart verhindert, wird eine Warnung angezeigt. Diese erklärt auch, wo man Einstellen kann, das nicht zertifizierte Apps erlaubt werden.

Ist dies nicht der Fall, dann hat es mit den Sicherheitseinstellungen nichts zu tun.
In dem Fall wird es sich wohl um ein Problem mit dem Programm selber handeln. Hier können ggf. Ausgaben im Terminal auf dem Mac Hinweise liefern.

P_G 2. Jan 2015 16:30

AW: Anfängerfrage: Bereitstellen für OS X
 
Das ist interessant. Danke für diesen Hinweis.
Jetzt stellen sich mir zwei Fragen:

1. Wenn es an meinem Programm liegt, kann nur im OnCreate was falsch laufen (OnActivate beinhaltet nichts). In diesem Fall wäre es erstaunlich, dass Windows keine Probleme dort hat, OSX aber schon. Hier würde tatsächlich nur Testen helfen.

2. Habe ich evtl. doch etwas bei der Bereitstellung falsch gemacht (siehe oben)? Ich habe mich z.B. gefragt, warum Delphi die Datei Entitlements.plist nicht als solche generiert, sondern sie Test.entitlements nennt (Gleiches mit Test.info.plist anstatt Info.plist). Gibt es dafür einen Grund?

Sir Rufo 3. Jan 2015 08:54

AW: Anfängerfrage: Bereitstellen für OS X
 
Ist evtl. eine komische Idee, aber hast du es schon mal mit einem Minimal-Programm versucht?

Wenn das nicht klappt, brauchst du erst mal keinen Fehler in deinem Programm suchen.

P_G 3. Jan 2015 10:25

AW: Anfängerfrage: Bereitstellen für OS X
 
Zitat:

Ist evtl. eine komische Idee, aber hast du es schon mal mit einem Minimal-Programm versucht?
Ja, die Idee kam mir auch schon. Ohne das entsprechende Equipment fischt man ziemlich im Trüben. Ich bin nur einfach den Verdacht nicht losgeworden, dass ich beim Bereitstellen irgendeinen kapitalen Fehler begehe, weil Delphi mich zwingt, die beiden plist-Dateien umzubenennen, anstatt sie gleich selbst korrekt zu benennen. Wer weiß also, was ich sonst noch übersehen habe...?
Es hängt ja in dem Sinne nichts für mich dran - ich hätte aber einfach gern verstanden, wo mein Gedankenfehler liegt, so es denn einen geben sollte. :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 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