4 votos

¿Es posible que un archivo de .scpt AppleScript retener un icono personalizado, incluso después de que se hicieron modificaciones al código?

El archivo:

He creado un AppleScript .scpt archivo en el Depurador de secuencias de Comandos.app.

He aquí cómo se le asigna un icono personalizado para esto .scpt archivo:

  • He descargado un único icono (en la "512px PNG" format) de IconArchive.com.

  • Abrí el .archivo png con vista previa.app. En la vista previa, hice clic en EditarCopia, para colocar esta imagen en mi portapapeles.

  • Abrí el .scpt del archivo de Obtener Información de la ventana en el Finder. Yo a la izquierda-clic en el icono predeterminado, se encuentra en la esquina superior izquierda de la de Obtener Información de la ventana. Un contorno de color azul, a continuación, apareció alrededor del icono predeterminado, lo que refleja que el icono seleccionado.

  • Por último, me pega el icono personalizado sobre el icono predeterminado mediante el método abreviado de teclado ⌘ comando + V. El icono personalizado se establece inmediatamente. Cerré fuera de la Obtener Información de la ventana.


El error:

Cuando abro el .scpt archivo en el Depurador de secuencias de Comandos, al editar el código y, a continuación, vuelva a guardar el .scpt archivo, el icono personalizado desaparece.

En guardar, el siguiente icono, inmediatamente toma el lugar del icono personalizado:

zXvDj.jpg

(Este es el OS X del icono por defecto .scpt archivos).

Por supuesto, tener que ir a través del proceso de configuración del icono personalizado cada vez que puedo guardar (es decir, editar) el archivo es un inconveniente.

Pero, hay también un segundo corolario error: Cada vez que yo vuelva a agregar el icono personalizado en el Obtener Información de la ventana, el tamaño del archivo de la .scpt archivo aumenta de forma acumulativa. En otras palabras, cuando el Depurador de secuencias de Comandos elimina el archivo personalizado icono, el tamaño del archivo se incluye, de alguna manera, como parte de la general .scpt el tamaño del archivo.

Caso en cuestión: el tamaño del archivo de la .scpt archivo en cuestión es de 12,6 MB, por el momento. El archivo no debe ser mayor que el 5 MB.


La pregunta:

Entiendo cómo personalizar el icono del archivo a un AppleScript .archivo de aplicación, por lo que este icono personalizado permanece en su lugar después de la edición, pero tengo curiosidad de saber si el mismo puede hacerse con una .scpt archivo.

Es allí una manera de que mi script personalizado icono para permanecer en el lugar, incluso después de la .scpt archivo ha sido modificado en el Depurador de secuencias de Comandos?

Este es un .scpt archivo que se inició a través de la FastScripts.aplicación de la barra de menú en el menú desplegable. (La .scpt archivo se encuentra en /Users/Me/Library/Scripts.) El FastScripts menú desplegable muestra los iconos de archivo de secuencias de comandos, que es una buena característica. Esta es la razón por la que quiero establecer un icono personalizado para el .scpt archivo (es decir, por lo que puedo observar un adecuado icono en la FastScripts menú contextual).

No, no es un gran problema para simplemente convertir el archivo AppleScript .scpt archivos que quiero la costumbre de tener un archivo de icono para AppleScript .archivos de la aplicación. Hago esta pregunta para ver si hay algo que me estoy perdiendo o pasando por alto aquí.


¿Qué acerca del Editor de secuencias de Comandos?

Parece que este error es única para el Depurador de secuencias de Comandos.

Cuando sigo los mismos pasos que en OS X nativo de AppleScript programa de edición, Editor de secuencias de Comandos.aplicación, la .scpt icono del archivo permanece intacto, al guardar. Sin embargo, yo podría haber jurado que, de hecho, ha experimentado este problema en el Editor de secuencias de Comandos, en el pasado.

Por ejemplo, recuerdo que una vez, Editor de secuencias de Comandos se negó a guardar un .scpt archivo que yo había editado; un vago de diálogo de error se presentó en Guardar. Para poder guardar el archivo, he tenido que eliminar el icono personalizado de búsqueda de Obtener Información de la ventana, o copiar el texto del código y péguelo en una nueva .scpt archivo (que, por supuesto, sería necesariamente el valor predeterminado .scpt icono del archivo).

Pero, en este momento, no puedo reproducir el error en el Editor de secuencias de Comandos.

En cualquier caso, yo trato de no usar Editor de secuencias de Comandos para editar mi AppleScripts más. Esto es porque el Editor de secuencias de Comandos es lag, potencialmente se bloquea cuando se utiliza un tercero biblioteca de secuencias de comandos, y puede ser temperamental cuando se trata de abrir y guardar archivos.

En mi experiencia, hasta ahora, Depurador de secuencias de Comandos no tiene ninguno de estos problemas.

Por supuesto, el Depurador de secuencias de Comandos tiene al menos un problema, aunque (es decir, la cuestión que se detallan en este post).


OS X El Capitan, versión 10.11.6.


3voto

user3439894 Puntos 5883

Generalmente hablando, cuando un Usuario se le asigna un icono personalizado en un archivo copiar y pegar un archivo de imagen en el icono en la esquina superior izquierda, en el de Obtener Información del archivo de la hoja, el archivo de imagen se almacena como un com.apple.ResourceFork de atributo extendido del archivo que se aplica, y puede ser visto en la Terminal usando ls -l@ filename.ext para mostrar el archivo tiene los atributos extendidos. Para manipular los atributos extendidos, el uso de la xattr de utilidad en la Terminal. Tenga en cuenta que el uso del término archivo de imagen en este contacto es cualquier fuente válida copiado en el Portapapeles para luego ser pegado en el Obtener Información de la hoja.

Tener que volver a solicitar el archivo de icono después de haber salvado .scpt archivo en el Depurador de secuencias de Comandos hace que el com.apple.ResourceFork de atributo extendido para continuar creciendo en tamaño, mientras que, posiblemente, perder el acceso a el acumulado de los archivos de icono, no se puede decir para asegurarse de que yo no he hecho suficientes pruebas. Desafortunadamente, mientras que el Editor de secuencias de Comandos mantiene el archivo de icono personalizado, sin embargo aparece a crecer el tamaño de la com.apple.ResourceFork de atributo extendido así.

Para reducir el tamaño del archivo mediante la eliminación específicamente la com.apple.ResourceFork atributos extendidos, utilice la siguiente sintaxis de comandos en la Terminal:

xattr -d com.apple.ResourceFork filename.ext

A continuación, volver a aplicar el icono personalizado para el archivo.

Eche un vistazo a la página man de xattr en la Terminal escribiendo, xattr y, a continuación, haga clic en él selección de Abrir hombre de la Página desde el menú de contexto.

El problema con el Depurador de secuencias de Comandos restablecer el icono predeterminado probablemente tendrá que ser tomada con el Desarrollador, o utilizar la solución sugerida en wch1zpink la respuesta.

Desde la com.apple.ResourceFork de atributo extendido crece independientemente de cual de las aplicaciones que más uso, Editor de secuencias de Comandos o Script Debugger, este es un tema que Apple necesita dirección.

Yo sé que usted está usando OS X El Capitan 10.11.6, sin embargo he probado esta bajo macOS Sierra 10.12.5 y el comportamiento aparentemente el mismo, probablemente no importa que he probado esto en un sistema operativo posterior liberación. Yo estaba usando el Depurador de secuencias de Comandos 6.0.4.

Debido a la repetición de lo que estás haciendo, un guión para la solución en este caso es reducir el esfuerzo necesario para mantener un tamaño de archivo pequeño, inclusive de los atributos extendidos, y el icono personalizado.


Actualización:

De haber ido por un camino similar, en OS X 10.8.5, con la configuración mediante programación un icono del archivo, y después de haber probado casi todas las soluciones presentadas bajo ¿Cómo puedo cambiar un archivo o icono de la carpeta utilizando el Terminal, decidí usar setfileicon a partir de esta respuesta, como redactar la mejor para mis necesidades en el momento.

El siguiente AppleScript código es el código de ejemplo que puede eliminar mediante programación la com.apple.ResourceFork de atributo extendido del archivo de destino para reducir acumulativo tamaño y restablecer el destino del archivo de icono. Está escrito en torno al uso de la solución sugerida en wch1zpink la respuesta, haciendo referencia a bloquear el archivo para mantener el icono intacta durante una operación de guardar bajo el Depurador de secuencias de Comandos.

El principal propósito de este código de ejemplo es para mostrar cómo eliminar el com.apple.ResourceFork de atributo extendido del archivo de destino y restablecer su icono personalizado mediante programación. Me he tirado en el código para desbloquear/bloquear el archivo de destino si usted elige utilizar ese método para mantener el icono intacta entre salva, si no se puede quitar. Creo que sólo depende de la frecuencia con que desea restablecer el tamaño del archivo de destino de la com.apple.ResourceFork de atributo extendido.

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:

Para el propósito de este código de ejemplo, he colocado el setfileicon utilidad de línea de comandos y de destino icon.icns archivos en el bin de la carpeta dentro de la root de mi Casa carpeta. El icon.icns archivo es el .icns archivo de la que está vinculada en su pregunta. Usted podría utilizar el formato PNG de archivo, sin embargo creo que el .icns archivo produce una mejor imagen.

El script podría ser más codificado y no tan detallado, sin embargo, me codificados de esta manera por varias razones de las cuales no voy a entrar en detalles de si no la necesita, explicó. Siéntase libre de utilizar el código de ejemplo para implementar una solución de trabajo como necesitaba/quería en su entorno.

Esto fue probado bajo macOS Sierra 10.12.5, sin embargo también se debe trabajar en OS X El Capitan 10.11.6.

3voto

wch1zpink Puntos 11

En realidad no es una solución. He descargado el .icns archivo desde el enlace proporcionado. Luego me arrastró a la totalidad .icns archivo desde la ventana del Finder para el icono de imagen en la ventana de Información de la secuencia de comandos que he creado en el Depurador de secuencias de Comandos de la aplicación. Después de que el nuevo icono, he seleccionado la opción de "bloqueo de archivo" en la ventana de Información.

enter image description here

Después de esto, me abrió las puertas de secuencia de comandos de nuevo en el Depurador de secuencias de Comandos de la aplicación y de hecho algunos cambios en el guión, vuelve a compilar el script y volver a guardar. Cuando traté de guardar de nuevo, tengo este mensaje de la ventana.

enter image description here

He seleccionado la opción "Guardar Ayway" y BINGO!! Las ediciones fueron salvados, pero el icono personalizado se mantuvo sin cambios.


Aquí hay una sugerencia de que tal vez alguien pueda agarrar la pelota y correr con ella. En lugar de guardarlo como un archivo de secuencia de comandos en el depurador de secuencias de comandos, guárdelo como una secuencia de comandos de paquete (.scptd). Después de hacer esto, ctrl + clic en el archivo en el finder y seleccione "Mostrar Contenido del Paquete". Agregar personalizado .icns archivo a la carpeta de Recursos. También te darás cuenta de una información.plist archivo. Abra la info.plist archivo en Xcode. Si usted golpea el botón + en la información de la lista de propiedades de la fila, se le da la opción de añadir archivos de icono.

enter image description here

Esto es, sobre el alcance de mi conocimiento, pero tal vez de alguna manera los iconos personalizados archivo se puede configurar aquí.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X