Icono de MacGS Sierra vs mi instalador DMG

0

Estoy distribuyendo mi aplicación (editada en gran medida en la imagen a continuación) a través de un instalador DMG de solo lectura. Tanto la aplicación como el DMG están firmados y pasan la validación de Gateway. Mi máquina de compilación es un El Capitan 10.11.6 .

En Sierra (10.12) only , después de montar el DMG, esto es lo que me muestra el Finder (excepto la ventana emergente a la izquierda que, por supuesto, desencadené después):

Comopuedesver:

  • eliconoApplicationsnoesloqueunoesperaría;
  • right-click->GetInfomuestraeliconoesperadoparaelalias(enlapartesuperiorasícomodebajodePreview).

ForzarelabandonodeFinderrectificaráestasituación.

DescarguéunkitSkypeforMac,sabiendoqueusaelmismomecanismodeimplementación.Curiosamente,eliconoApplicationssemuestracorrectamentedesdeelinicio.

OtroaspectointeresanteesquealgolpearGetInfoenelaliasApplicationsdemiDMGsemostrará(enlaparteinferiordelaventana)lasecciónSharing&Permissions,mientrasqueelSkypeonenolohará.

Detallesquepuedenserrelevantes:miDMGsecreautilizandouna"plantilla", que estoy modificando, luego clonando y haciendo que el clon sea de solo lectura. El alias colocado en la imagen de la plantilla es un alias que creé en mi sistema y simplemente lo copié allí.

Apreciaría cualquier idea sobre lo que estoy haciendo mal. Gracias. [La pregunta se actualiza a continuación, la dejó por razones de coherencia.]

[ACTUALIZACIÓN] Se encontró este subproceso SOV , lo que parece sugerir que no estoy haciendo nada mal per se. ¿Hay alguna solución, por ejemplo? ¿Relanzando el Finder programáticamente después de que se abra la ventana ( AppleScript )? ¿O algo aún menos feo? No apostaría mi $ a Apple arreglando esto en cualquier momento pronto, ya que Finder "busca" aplicaciones "apresuradamente" y muestra el círculo de huelga en su icono como si estuvieran rotos, aunque en realidad no eran, era una problema de larga data.

    
pregunta elder elder 26.10.2016 - 22:37

1 respuesta

2

Mi comentario original: parece que estás usando un alias de Finder para las aplicaciones, en lugar de un enlace simbólico de estilo Unix. Los alias almacenan mucha información sobre el elemento original en la computadora en la que se creó, lo que a veces confunde las cosas cuando se mueven a otra computadora. Intenta crear un enlace simbólico en su lugar, con algo como ln -s /Applications /Volumes/QST-6.5-devel-setup/Applications , que podría tener un mejor comportamiento.

Aquí hay una comparación más detallada de los dos:

LaventanadeInformacióndelFinderlosmuestracomo"Tipo: Alias", pero solo el alias verdadero tiene un botón "Seleccionar nuevo original". Además, el enlace simbólico es mucho más pequeño, ya que los alias verdaderos incluyen todo tipo de información sobre el elemento original (el número de ID del archivo (inodo) y el nombre, la ID del archivo y la ruta de la carpeta en la que estaba, información sobre el volumen en el que estaba encendido, si el volumen era una imagen de disco o un volumen de red, tendrá información sobre cómo volver a montar el volumen, ...). Mi alias de ejemplo, con 612 bytes, es mucho más pequeño que el tuyo, probablemente porque fue creado bajo Sierra, y creo que Sierra puede haber cambiado un poco el formato. El enlace simbólico, en comparación, solo tiene 13 bytes, en realidad es solo el texto "/ Aplicaciones" (que tiene 13 caracteres).

La diferencia en la cantidad de información que tienen tiene implicaciones importantes para la forma en que funcionan. Los alias verdaderos son mucho más robustos: puede cambiar el nombre de un archivo o moverlo a una carpeta diferente, y el alias aún puede encontrarlo por ID de archivo; por otro lado, si elimina & Reemplácelo, encontrará el reemplazo por nombre y amp; carpeta. Un enlace simbólico, por otra parte, es más frágil: si mueve o cambia el nombre del archivo original, el enlace simbólico no tiene ninguna información que pueda ayudar a localizarlo.

Pero para la portabilidad, la falta de información adicional en un enlace simbólico es en realidad una ventaja real: en una computadora diferente, todo tendrá un ID de archivo diferente, la información del volumen será obviamente diferente, etc. Peor aún, otro archivo completamente diferente puede tener la misma ID que la original tenía en su computadora, y el alias podría (*) resolverlo! Toda esa información adicional es solo crear oportunidades para la confusión. Pero la carpeta de Aplicaciones siempre estará en "/ Aplicaciones", por lo que el enlace simbólico siempre se resolverá, sin posibilidad de confusión.

(*) [Editar:] Hace mucho tiempo, si un alias se resolvía en un archivo por ID de archivo y un archivo diferente por carpeta y nombre, la coincidencia de ID tendría prioridad. Apple cambió la prioridad hace un tiempo atrás, ya sea en una versión anterior de OS X o tal vez incluso en una versión tardía de Mac OS 9, no lo recuerdo, por lo que ahora la identificación del archivo solo debería causar problemas si no existe nada "correcto" " camino. Pero si crea un verdadero alias para, por ejemplo, / Library / Application Support / YourApp, y eso no existe en otra computadora, podría resolverse en cualquier otro archivo o carpeta que tenga la misma ID.

Hay otra diferencia que olvidé mencionar: todas las API de acceso a archivos en OS X saben cómo resolver enlaces simbólicos, por lo que funcionan muy bien tanto con las aplicaciones GUI como con las herramientas de línea de comandos y unix portadas. Los alias verdaderos, por otro lado, solo son comprendidos por las API de Cocoa y Carbon (básicamente, los entornos de programación GUI de Apple), por lo que las herramientas de línea de comandos (que usan API POSIX) solo las ven como archivos y no tienen Pista cómo resolverlos al artículo original. Esto no es relevante en su situación, pero pensé que debería agregarlo para completar.

    
respondido por el Gordon Davisson 27.10.2016 - 22:10

Lea otras preguntas en las etiquetas