Ist es möglich, dass eine AppleScript-.app-Datei ihr benutzerdefiniertes Symbol behält, auch nachdem Änderungen am Code vorgenommen wurden?

Ich habe eine AppleScript-.app-Datei in Script Debugger.app erstellt.

Ich habe dieser .app-Datei ein benutzerdefiniertes Symbol zugewiesen, indem ich ein neues Symbol über das Standardsymbol im Get InfoFenster der Anwendung im Finder eingefügt habe. Das benutzerdefinierte Symbol wird sofort festgelegt.

Wenn ich jedoch die App im Skript-Debugger oder Skript-Editor öffne, um den Code zu bearbeiten, und dann die Datei erneut speichere, verschwindet das benutzerdefinierte Symbol.

Beim Speichern tritt das folgende Symbol sofort an die Stelle des benutzerdefinierten Symbols:

Natürlich ist es eine Unannehmlichkeit, jedes Mal, wenn ich die Datei speichere (dh bearbeite), den Prozess des Festlegens des benutzerdefinierten Symbols durchlaufen zu müssen.

Gibt es eine Möglichkeit, mein benutzerdefiniertes Anwendungssymbol zu behalten, auch nachdem die .app-Datei geändert wurde?


Hier ein ähnlicher Beitrag:

In Applescript erstellte App; Das Symbol ändert sich nicht

Die Antwort auf den obigen Beitrag brachte mich auf die Idee, die Standardsymboldatei zu löschen, die sich unter befindet /Contents/Resources/applet.icns(auf die ich zugegriffen habe, indem ich mit der rechten Maustaste auf die .app-Datei im Finder geklickt und auf das Show Package ContentsKontextmenüelement geklickt habe). Ich habe dann mein benutzerdefiniertes Symbol in diesen ResourcesOrdner eingefügt und mein Symbol umbenannt applet.icns.

Der Effekt davon war ein benutzerdefiniertes Symbol in informational Dialogen in meiner AppleScript-Anwendung, aber es änderte nicht wirklich das tatsächliche Anwendungssymbol (dh das Symbol, das in das Dock eingefügt wird, während die Anwendung läuft). Aber zumindest blieb dieses benutzerdefinierte Dialogsymbol beim erneuten Speichern/Bearbeiten des AppleScript-Codes bestehen.

Antworten (1)

Ich habe genau das gleiche Verfahren befolgt und genau das gleiche Problem auch auf dem Betriebssystem Sierra festgestellt. Nachdem ich ein paar Dinge ausprobiert hatte, entschied ich mich (zusätzlich zum Ändern des Hauptanwendungssymbols im Get-Info-Fenster), genau dasselbe im Get-Info-Fenster der Datei applet.icns zu tun und auch das Symbol zu ändern. Ich habe dann diese Skripteditor-App im Skripteditor geöffnet und die Datei gespeichert. Die neuen Symbole blieben, als ich sie änderte. Auch im Skript-Debugger getestet und meine benutzerdefinierten Symbole blieben unberührt.

Geben Sie hier die Bildbeschreibung ein

AKTUALISIEREN:

Der folgende AppleScript- Code ändert die Standarddatei applet.icnsIhrer AppleScript-Applets dauerhaft in eine andere .icnsDatei Ihrer Wahl, sodass Ihr benutzerdefiniertes Symbol auch nach dem Bearbeiten und erneuten Speichern des AppleScript-Applets erhalten bleibt.

property destinationSuffix : "Contents/Resources/applet.icns"

activate
set chosenApp to (choose file with prompt ¬
    "Choose The Application Whose Icon You Would Like To Change" of type ¬
    "APPL" with multiple selections allowed)

activate
set iconFile to (choose file of type "com.apple.icns" with prompt ¬
    "Choose The Replacement .icns File")

repeat with thisItem in chosenApp
    set replaceThisIcon to POSIX path of thisItem & destinationSuffix 
    try
        do shell script "cp " & quoted form of POSIX path of iconFile & " " & ¬
            quoted form of replaceThisIcon & " ; touch " & quoted form of POSIX path of thisItem
    end try
end repeat
Das Einfügen meines benutzerdefinierten Symbols als Dateisymbol der applet.icnsDatei löst das Problem. Wenn ich jetzt den AppleScript-Code bearbeite und die .app-Datei erneut speichere, wird das benutzerdefinierte Dateisymbol der Anwendung nicht mehr mit dem Standardsymbol überschrieben. Danke!
Ja, ich bin mir voll bewusst, choose filedass es von Standard Additions stammt. Komm schon, das ist eine AppleScript 101-Lektion LOL. Ich habe choose fileden Befehl an den Finder gesendet, um ein Problem zu umgehen, von dem ich VERDAMMT bin. Ich weiß nicht, ob es sich um einen AppleScript- oder einen Betriebssystemfehler handelt oder nur um einen Fehler, der auf meinem System und seiner Einrichtung auftritt, aber aus irgendeinem Grund friert es ein, wenn ich choose fileStandard Additions verwende, wenn das Fenster zum tatsächlichen Auswählen der Datei angezeigt wird. Nach ungefähr 30 oder 40 Sekunden kann ich schließlich eine Datei auswählen, aber wenn ich nach unten scrollen muss oder so, friert sie wieder für weitere 30 Sekunden ein.
fortgesetzt… Das Problem tritt nur auf, wenn ich das kompilierte und gespeicherte Skript über das Skriptmenü in der Menüleiste ausführe. Es passiert nicht, wenn ich den Code über Debugger oder Editor ausführe.
Neueste Version von macOS Big Sur
Es funktioniert ohne Probleme für mich in macOS Big Sur 11.4. Hast du es mal probiert im abgesicherten Modus zu booten ?