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