Hallo zusammen,
nur als kleiner Erfahrungsbericht hier angehängt:
Mein AppleScript Skript als *.scpt-Datei gestartet aus der AppleScript Skripteditor app oder auch aus InDesign heraus im Benutzer-Verzeichnis des Skripte-Bedienfeldes funktionierte wie gewünscht.
Nur als *.app aus dem Skripteditor gespeichert, hagelte es bei der Ausführung eine Fehlermeldung.
Weshalb?
Ich hatte wohl nicht die default-Einstellungen benutzt für das Exportieren des Codes zu einer app.
Das war gestern. Heute kann ich nicht mehr genau nachvollziehen, was ich falsch gemacht hatte.
Es gab jedenfalls keine Abfrage, ob ich der App Zugriff auf Dateien im Ordner "Schreibtisch" geben wollte.
Die Fehlermeldung war dann diese, dass der Zugriff nicht gestattet sei:
"sh: /Users/benutzername/Desktop/ConcatTEXTfiles/merged.txt: Operation not permitted"
"sh: /Users/benutzername/Desktop/ConcatTEXTfiles/merged.txt: Operation not permitted (1)"
Jedenfalls funktioniert es heute nachvollziehbar mit folgenden Export-Einstellungen:
Skripteditor > Ablage > Exportieren…
Dateiformat: App
Optionen:
Alle ausgeschaltet Codesignatur: Zum lokalen Ausführen signieren
Mit einem Doppelklick auf die app im Finder geschieht das:
[1] Frage ob "NameMeinerApp.app" möchte Zugriff auf Dateien in deinem Ordner "Schreibtisch".
[2] Ich beantworte das mit "OK"
Die App machte dann, was ich will. Siehe Code weiter unten. Alle Dateien mit Endung *.txt in einem bestimmten Verzeichnis auf dem Desktop sollen in eine neue Datei zusammengeführt werden. Der folgende Code ist die Minimalversion, in der ausgebauten Version wird die Resultatdatei nicht überschrieben.
macOS Monterey Version 12.6.5
Skripteditor app Version 2.11 (277) AppleScript 2.8
Meine Bitte: Vielleicht kann jemand hier im Detail erklären, welche Option beim Exportieren als App wann gebraucht wird?
Ich bin wegen meines ersten Fehlversuches etwas irritiert.
Unter
Optionen hatte ich nun alles ausgeschaltet.
Bei der
Codesignitur nehme ich mal an, dass mit "Zum lokalen Ausführen signieren" diejenige Option ist, die das Ausführen der App auf meinen Rechner beschränkt. Liege ich damit richtig? Hm. Gibt's sonst noch irgendwelche Fallstricke? Beim
do shell script könnte ich mir vorstellen, dass Leerzeichen in Dateinamen ein Problem sein könnten…