home   über uns   kontakt   impressum   login   registrieren

apple


Beitrag von Detlef Schulz, 11.04.2008, 08:28

Das AppleScript-Dateiformat “Programm-Bundle” und seine Optionen

Ein AppleScript, das im Format “Programm-Bundle” gespeichert wird, erhält das Dateikürzel “app” - also dasselbe Dateikürzel wie ein normales Macintosh-Programm oder ein Skript im Format “Programm”. Mit einem Doppelklick wird ein Programm-Bundle direkt ausgeführt. Um es zur Bearbeitung zu öffnen, müssen Sie es daher explizit mit dem Skripteditor öffnen.

Das Icon eines Programm-Bundles ist identisch mit einem AppleScript im Format “Programm”.

Bei einem Programm-Bundle handelt es sich nicht um eine einzelne Datei, sondern um einen Ordner, der wie eine einzelne Datei behandelt wird. Wenn Sie ein solchermaßen gespeichertes Skript mit der rechten Maustaste im Finder anklicken und “Paketinhalt zeigen” auswählen, sieht die Struktur im Inneren wie in folgender Abbildung aus.

image
Abb. 1: Der Inhalt eines einfachen Skripts, welches als Programm-Bundle gesichert wurde.

Die Grundstruktur ist identisch mit der eines Skript-Bundles - beachten Sie daher auch die Aussagen in diesem Artikel.

main.scpt
Das eigentliche Skript befindet sich im Ordner “Contents/Resources/Scripts” und heißt “main.scpt”. Dieses Skript wird geöffnet, wenn man ein Programm-Bundle explizit im Skripteditor öffnet. Ändern Sie den Namen nicht, sonst lässt sich das Skript nicht mehr öffnen oder ausführen.

applet
Wenn man auf das Programm-Bundle doppelklickt, wird darin nicht das Skript “main.scpt”, sondern die Startdatei “applet” im Ordner “Contents/MacOS” gestartet. Bei dieser handelt es sich um das eigentliche Programm, das dann auf die Ressourcen im Bundle zugreift. “applet” gibt dem Code eine Hülle, so dass sich das Skript nach dem Start wie jedes andere Programm benimmt. Damit erhält es auch eine grundlegende (deutsch lokalisierte) Menüleiste. Beachten Sie hierzu auch den Artikel zum Format “Programm”.

applet.icns
Diese Datei enthält das Icon des Skripts. Tauschen Sie doch einfach mal diese Datei gegen ein selbst erstelltes Icon mit gleichem Namen aus, und auf Anhieb lässt sich das Skript nicht mehr als solches erkennen. Jeder wird glauben, solange er nicht in das Bundle hineinsieht, dass Sie das Programm mit Objective-C und Cocoa entwickelt haben. Zum Erstellen von Icons brauchen Sie nur ein beliebiges Bildbearbeitungsprogramm und das kleine Hilfsprogramm “Icon Composer”. Sie finden es im Ordner “/Developer/Applications/Utilities”, wenn Sie die Xcode-Umgebung von Apple installiert haben.

Der restliche Inhalt des Bundles entspricht dem Inhalt eines Bundles in einem normalen Macintosh-Programm. Dementsprechend finden sich alle Details zu deren Sinn und Organisation in der Entwicklerdokumentation von Apple. Wer hier tiefer einsteigen will, dem sei die Lektüre des “Bundle Programming Guide” von Apple ans Herz gelegt - zu finden unter:
http://developer.apple.com/documentation/CoreFoundation/ResourceManagement-date.html

Für einen Skripter ist hauptsächlich eine Eigenschaft des Programm-Bundles interessant, nämlich die, den Ordner “Resources” zur Aufbewahrung aller Dateien, die das Skript benötigt, zu verwenden - seien es Bilder, Texte, andere AppleScripts oder Code in anderen Sprachen. Fügen Sie diese Dateien einfach manuell hinzu. Mit path to resource “nameDerDatei” können Sie im Skript auf die Datei zugreifen.

Bei dem Format “Programm-Bundle” stehen beim Sichern drei Optionen zur Verfügung:

Beachten Sie hierzu auch den Artikel: Das Dateiformat “Programm” und seine Optionen

Achtung!
Beim Sichern in anderen Formaten (Skript, Programm, Skript-Bundle oder Text) gehen alle manuellen Änderungen im Bundle oder zum Bundle hinzugefügte Dateien verloren. Bewahren Sie also immer eine Kopie des originalen Programm-Bundles auf.

Type- und Creator-Code für ein Programm-Bundle sind “APPL” und “aplt” - sie sind also identisch mit dem Format “Programm”.

(0) Kommentare | Permalink | Newsletter abonnieren
Themen: E-Mail Abo | Apple | AppleScript | Mac OS
Tags: AppleScript | Leopard | Mac OS X | Skripteditor | Tiger