¿Es posible que un file .scpt de AppleScript conserve un ícono personalizado, incluso después de que se hayan hecho modificaciones al código?

El file:

Creé un file .scpt de AppleScript en Script Debugger.app.

Así es como asigné un ícono personalizado a este file .scpt:

  • Descargué un ícono único (en el formatting "512px PNG") de IconArchive.com .

  • Abrí el file .png con Preview.app. En Vista previa, hice clic en EditarCopiar , para colocar esta image en mi portapapeles.

  • Abrí la window Obtener información del file .scpt en Finder. Hice clic con el button izquierdo en el icono pnetworkingeterminado, que se encuentra en la esquina superior izquierda de la window Obtener información . A continuación, apareció un contorno azul alnetworkingedor del icono pnetworkingeterminado, lo que refleja que se seleccionó el icono.

  • Finalmente, pegué el icono personalizado sobre el icono pnetworkingeterminado mediante el atajo de keyboard, ⌘ command + V. El icono personalizado se configuró de inmediato. Cerré la window Obtener información .


El bicho:

Cuando abro el file .scpt en Script Debugger, edito el código y vuelvo a save el file .scpt, el icono personalizado desaparece.

Al save, el siguiente ícono toma el lugar del ícono personalizado:

(Este es el icono pnetworkingeterminado de OS X para files .scpt).

Por supuesto, tener que pasar por el process de configuration del icono personalizado cada vez que guardo (es decir, edito) el file es un inconveniente.

Pero también hay un segundo error corolario: cada vez que vuelvo a agregar el icono personalizado en la window Obtener información , el tamaño del file .scpt aumenta de forma acumulativa. En otras palabras, cuando Script Debugger elimina el icono del file personalizado, el tamaño del file del icono aún se incluye, de alguna manera, como parte del tamaño total del file .scpt.

Ejemplo: el tamaño del file .scpt en cuestión es de 12.6 MB, por el momento. El file no debe ser mayor que .5 MB.


La pregunta:

Entiendo cómo configurar un ícono de file personalizado en un file .app de AppleScript, para que este ícono personalizado permanezca en su lugar después de la edición , pero tengo curiosidad de saber si se puede hacer lo mismo con un file .scpt.

¿Hay alguna manera de que mi icono de script personalizado permanezca en su lugar, incluso después de que el file .scpt se haya modificado en Script Debugger?

Este es un file .scpt que se inicia a través del menu desplegable de la barra de menu de FastScripts.app. (El file .scpt se encuentra en /Users/Me/Library/Scripts ). El menu desplegable FastScripts en realidad muestra los icons de file de los scripts , lo cual es una buena característica. Esta es la razón por la que deseo establecer un ícono personalizado en el file .scpt (es decir, para poder observar un ícono apropiado en el menu contextual de FastScripts).

No, no es gran cosa simplemente convertir los files .scpt de AppleScript que quiero tener un ícono de file personalizado a los files .app de AppleScript. Formulo esta pregunta solo para ver si hay algo que me falta o pasa por alto aquí.


¿Qué hay de Script Editor ?

Parece que este error es exclusivo de Script Debugger .

Cuando sigo los mismos pasos en el progtwig nativo de edición AppleScript de OS X, Script Editor.app , el ícono del file .scpt permanece intacto, al savelo. Sin embargo, podría haber jurado que, de hecho, he experimentado este problema en Script Editor, en el pasado.

Por ejemplo, recuerdo que, una vez, Script Editor se negó a save un file .scpt que había editado; un cuadro de dialog de error vago fue presentado en Guardar. Para save el file correctamente, tuve que eliminar el icono personalizado de la window Obtener información del buscador, o copyr el text del código y pegarlo en un nuevo file .scpt (que, por supuesto, necesariamente tendría el icono del file .scpt pnetworkingeterminado) .

Pero, en este momento, ya no puedo reproducir el error en Script Editor.

En cualquier caso, trato de no utilizar Script Editor para editar mis AppleScripts. Esto se debe a que Script Editor es lento , potencialmente se bloquea cuando se usa una biblioteca de scripts de terceros y puede ser temperamental cuando se trata de abrir y save files.

En mi experiencia, hasta ahora, Script Debugger no tiene ninguno de estos problemas.

Por supuesto, Script Debugger sí tiene al less un problema (es decir, el problema detallado en esta publicación).


OS X El Capitan, versión 10.11.6.


  • habilidad -KILL -u $ usuario ¿Comando en Max OS X?
  • Secuencia de commands para matar a una aplicación en la pantalla de suspensión y luego reiníciela en pantalla.
  • Ejecute el script al cerrar la session sin usar el gancho de cierre de session
  • ¿Cómo puedo cambiar un ícono de file o carpeta usando la Terminal?
  • Mover files creados automáticamente en la carpeta
  • AppleScript para manipular VLC
  • La connection es un error no válido al ejecutar Applescript y Safari
  • Usando select.kqueue () para saber cuándo se modifica el file en python?
  • 2 Solutions collect form web for “¿Es posible que un file .scpt de AppleScript conserve un ícono personalizado, incluso después de que se hayan hecho modificaciones al código?”

    En general, cuando un usuario asigna un icono personalizado a un file al copyr y pegar un file de image en el icono, en la esquina superior izquierda, en la hoja Obtener información del file, el file de image se almacena como com.apple.ResourceFork extendido atributo del file al que se aplica, y se puede ver en Terminal usando ls -l@ filename.ext para mostrar que el file tiene attributes extendidos . Para manipular los attributes extendidos , use la utilidad xattr en Terminal. Tenga en count que el uso del file de image de término en este contacto es cualquier fuente válida copyda en el Portapapeles para luego pegarla en la hoja Obtener información.

    Tener que volver a aplicar el file de icono después de haber guardado el file .scpt en Script Debugger hace que el com.apple.ResourceFork extendido com.apple.ResourceFork siga creciendo en tamaño, mientras que posiblemente pierda acceso a los files de icono acumulados, no puede decir con certeza como yo No he hecho suficientes testings. Desafortunadamente, aunque Script Editor mantiene el file de icono personalizado, sin embargo, parece boost el tamaño del atributo extendido com.apple.ResourceFork también.

    Para networkingucir el tamaño del file eliminando específicamente los com.apple.ResourceFork extendidos com.apple.ResourceFork , use la siguiente syntax de command en Terminal:

     xattr -d com.apple.ResourceFork filename.ext 

    A continuación, vuelva a aplicar el icono personalizado al file.

    Eche un vistazo a la página de manual de xattr en Terminal escribiendo xattr y luego haga clic derecho sobre él seleccionando Abrir página de manual en el menu contextual.

    El problema con el restablecimiento del Script Debugger al ícono pnetworkingeterminado probablemente deba abordarse con el Desarrollador o usar la solución alternativa sugerida en la respuesta de wch1zpink.

    Dado que el com.apple.ResourceFork extendido com.apple.ResourceFork crece independientemente de las aplicaciones que use, Script Editor o Script Debugger, este es un problema que Apple debe abordar.

    Sé que estás usando OS X El Capitan 10.11.6, sin embargo, probé esto en macOS Sierra 10.12.5 y aparentemente el comportamiento es el mismo, probablemente no importe que lo haya probado en una versión posterior del sistema operativo. Estaba usando Script Debugger 6.0.4.

    Debido a la repetición de lo que está haciendo, una solución con guiones es necesaria para networkingucir el esfuerzo necesario para mantener un tamaño de file pequeño, incluidos los attributes extendidos , y el ícono personalizado.


    Actualizar:

    Después de haber seguido un path similar, con OS X 10.8.5, configurar programáticamente el icono de un file y haber probado casi todas las soluciones presentadas en ¿Cómo puedo cambiar el icono de un file o carpeta utilizando la Terminal ? setfileicon usar setfileicon de esta respuesta , ya que decía lo mejor para mis necesidades en ese momento.

    El siguiente código AppleScript es un código de ejemplo que puede eliminar mediante progtwigción el com.apple.ResourceFork extendido com.apple.ResourceFork del file de destino para networkingucir su tamaño acumulativo y restablecer el icono del file de destino. Está escrito en torno al uso de la solución alternativa sugerida en la respuesta de wch1zpink, haciendo reference al locking del file para mantener intacto el icono durante un guardado en Script Debugger.

    El objective principal de este código de ejemplo es mostrar cómo eliminar el com.apple.ResourceFork extendido com.apple.ResourceFork del file de destino y restablecer su icono personalizado mediante progtwigción. He introducido el código para desbloquear / bloquear el file de destino si elige usar ese método para mantener intacto el ícono entre guardados, si no puede ser eliminado. Supongo que solo depende de la frecuencia con la que quieras restablecer el tamaño del atributo extendido com.apple.ResourceFork del file de com.apple.ResourceFork .

     tell current application set theTargetFilename to "filename.scpt" as string set theHomeFolderPath to (path to home folder) as string set theScriptsFolder to (path to scripts folder) as string set theTargetFilePathname to theScriptsFolder & theTargetFilename as alias set theTargetIcon to quoted form of (POSIX path of (theHomeFolderPath & "bin:icon.icns") as string) set theTargetExecutable to quoted form of (POSIX path of (theHomeFolderPath & "bin:setfileicon") as string) tell application "Finder" to set locked of theTargetFilePathname to false do shell script "xattr -d com.apple.ResourceFork " & quoted form of (POSIX path of theTargetFilePathname) & "; exit 0" do shell script theTargetExecutable & " " & theTargetIcon & " " & quoted form of (POSIX path of theTargetFilePathname) tell application "Finder" to set locked of theTargetFilePathname to true end tell 

    Notas:

    A los efectos de este código de ejemplo, coloqué la utilidad de command-line setfileicon y los files de destino icon.icns en la carpeta bin dentro de la raíz de mi carpeta de inicio . El file icon.icns es el file .icns del que está vinculado en su pregunta. Podría usar el file PNG , sin embargo, creo que el file .icns produce una mejor image.

    El guión podría ser más difícil de codificar y no tan detallado, sin embargo lo codifiqué de esta manera por algunas razones de las cuales no voy a entrar en los detalles a less que lo necesite explicado. Siéntase libre de utilizar el código de ejemplo para implementar una solución de trabajo según lo necesite / desee en su entorno.

    Esto se probó con macOS Sierra 10.12.5, pero también debería funcionar bajo OS X El Capitan 10.11.6.

    En realidad hay una solución. Descargué el file .icns del enlace que proporcionó. Luego arrastré todo el file .icns de la window del Finder a la image del icono en la window Obtener información de la secuencia de commands que creé en la aplicación Script Debugger. Después de configurar el nuevo ícono, seleccioné la opción de "bloquear file" en la window Obtener información.

    enter image description here

    Después de esto, abrí ese script nuevamente en la aplicación Script Debugger e hice algunos cambios en el script, recompuse el script y lo guardé nuevamente. Cuando traté de savelo de nuevo, obtuve esta window de post.

    enter image description here

    Seleccioné la opción de "Guardar Ayway" y BINGO !! Las ediciones se saveon pero el icono personalizado permaneció sin cambios.


    Aquí hay una sugerencia de que tal vez alguien pueda agarrar la pelota y correr con ella. En lugar de savelo como un file de script en el depurador de scripts, guárdelo como un package de scripts (.scptd). Después de hacer esto, presione Ctrl + clic en ese file en el buscador y select "Mostrar contenido del package". Agregue su file .icns personalizado a la carpeta de Recursos. También notará un file info.plist. Abra el file info.plist en Xcode. Si presiona el button + en la fila de la list de properties de información, le da la opción de agregar files de icons.

    enter image description here

    Esto está por encima del scope de mi conocimiento, pero tal vez de alguna manera el file de icons personalizados se puede establecer aquí.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).