¿Cuál es la explicación técnica de por qué Archive Utility puede romper ciertas aplicaciones, mientras que otros desarchivadores no lo hacen?

Acabo de experimentar este problema descrito en esta respuesta .

Había descargado un archivo zip que contenía una aplicación de macOS , y primero lo descomprimí con Archive Utility, al intentar abrir la aplicación, recibí el error de que "no se pudo abrir" (sin más aclaraciones) al igual que en las preguntas y respuestas vinculadas por arriba.

Sin embargo, cuando usé Keka (software de archivo de terceros) para descomprimir, la aplicación funcionó bien.

¿Cuál es la explicación técnica de esto? ¿No se supone que los zips y otros archivos salen literalmente iguales, byte por byte? ¿Cómo puede un desarchivador romper la aplicación, pero el otro no?

Yo uso Catalina en un Intel Mac.

¿Comparaste/diferenciaste el resultado del archivo descomprimido entre los dos métodos? ¿Quizás eso dará algunos consejos sobre lo que es diferente? Sospecho que Archive Utility (des)establece algún atributo que hace que el archivo sea inutilizable.

Respuestas (1)

Los atributos del archivo no son los datos que se almacenan en los archivos, es la información almacenada en el sistema de archivos. Diferentes utilidades de archivo pueden interpretar la información de manera diferente. es:

a) Los atributos del archivo antes de comprimir son incorrectos y (algunas) utilidades de descompresión lo corrigen
b) La utilidad de descompresión tiene un error.

Revisé el archivo con la utilidad tar (utilidad ampliamente utilizada y bien conocida). El archivo "Neuron.app/Contents/MacOS/Neutron" no tiene el atributo "x". El creador de la aplicación probablemente olvidó establecer ese atributo, por lo que básicamente es la causa a) .

Archive Utility va a aplicar banderas de cuarentena, lo más probable es que otros archivadores no lo hagan. Verificaría el paquete .app para ver si se aplicó.
Hay razones por las que las aplicaciones se distribuyen en imágenes comprimidas. Es decir, archivos dmg