~~DISCUSSION~~
====== AppleScript kopieren ======
AppleScripte erstellt man normalerweise mit dem AppleScript-Editor. Aber wie kopiert man die erstellten Dateien?
===== Problem 1: Meldung LSOpenURLsWithRole() failed with error -10810 for the file =====
Die app-Datei kann im Finder nicht gestartet werden (keine Reaktion) und in der Kommandozeile erscheint:
''LSOpenURLsWithRole() failed with error -10810 for the file meinscript.app''
Ursache: Die eigentliche Scriptdatei ist nicht ausführbar (z.B. weil Dateien ohne vollständige Meta-Daten (Permissions) kopiert wurden.
Lösung:
* einzeln: ''chmod meinscript.app/Contents/MacOS/applet''
* in allen Apps im Ordner: ''find . -name applet -exec chmod +x {} \;''
===== Problem 2: Programm binär=====
Ein AppleScript wird als "Programm" gespeichert, die Datei (Endung .app) wird auf ein Nicht-Apple-System kopiert
(z.B. mit scp auf ein Linux-Server) und zurückkopiert, dann sind die Dateien zwar identisch, aber die kopierte .app-Datei ist nicht
mehr ausführbar.
Original:
klaus-frankens-mac-mini:Scripts kfr$ md5 sp,kfr.app
MD5 (sp,kfr.app) = dd680eb9c6789d57bce4dba6a40117b0
klaus-frankens-mac-mini:Scripts kfr$ ls -la sp,kfr.app
-rwxr-xr-x@ 1 kfr staff 13780 28 Mai 12:33 sp,kfr.app
Kopie:
klaus-frankens-mac-mini:tmp kfr$ md5 sp,kfr.app
MD5 (sp,kfr.app) = dd680eb9c6789d57bce4dba6a40117b0
klaus-frankens-mac-mini:tmp kfr$ ls -la sp,kfr.app
-rwxr-xr-x 1 kfr staff 13780 28 Mai 12:48 sp,kfr.app
:?: Was bedeutet eigentlich das "@" bei der ls-Ausgabe?
:!: das sind erweiterte Attribute, siehe [[macosxxattr]] und bei Lösung unten
Im Finder erscheint die Datei als "Classic"-Programm und kann nicht ausgeführt werden:
{{:doku:bildschirmfoto_2009-05-28_12-54-12.png|}}
Im Skripteditor kann die Datei nicht mehr gelesen werden:
{{:doku:bildschirmfoto_2009-05-28_12-56-47.png|}}
Lösung:
* siehe auch [[macosxxattr]]
* die "erweiterten Attribute" werden nicht mitkopiert, aber darin wird sowohl die Info gespeichert, wie das Programm ausgeführt werden soll, als auch das Script selbst, allerdings "binär"
* eine sehr blöde Methode!
* Abhilfe: Speicher Script im scripteditor als "Programm-Bundle", das ergibt einen Ordner, der sich normal kopieren lässt.