Mejora de la privacidad y seguridad de macOS con UUID de aplicaciones

Traducido automáticamente de Deepl

Con la actualización Sequoia, macOS se basa ahora en el UUID de las aplicaciones para diversos controles de privacidad y seguridad, como el acceso a la red. Esta nueva característica de macOS podría causar problemas en el lado del usuario final, como tener que volver a autorizar a menudo las aplicaciones 4D construidas. Para solucionar esto, a partir de 4D 20 R9, cada aplicación 4D construida para macOS tiene ahora su propio UUID de aplicación. Este cambio asegura controles de acceso mejor ajustados. Profundicemos en los detalles.

macOS Sequoia y UUID de aplicación

Con la introducción de la versión Sequoia, macOS basa ahora algunos ajustes de privacidad y seguridad en los UUID de las aplicaciones en lugar de en sus nombres. Entonces, si varias aplicaciones comparten el mismo UUID, puede causar problemas en los controles del sistema. Esto es particularmente relevante para el acceso a la Red Local, como se explica en esta nota técnica. La configuración correspondiente se encuentra en el cuadro de diálogo Configuración del sistema, en el panel Red local del elemento Privacidad y seguridad:

UUIDs Únicos de Aplicación

Antes de 4D 20 R9, las aplicaciones 4D construidas compartían el mismo UUID que la aplicación 4D Volume Desktop o 4D Server utilizada como fuente.

Ahora, cuando se construye una aplicación, su UUID se establece automáticamente usando una combinación de la aplicación 4D fuente y su identificador de aplicación. Esto asegura que su aplicación se considera única en los sistemas macOS y mantiene el mismo UUID para su aplicación siempre que utilice la misma versión de la aplicación 4D fuente.

Por supuesto, ¡este nuevo comportamiento también se aplica al componente Build4D!

Buenas noticias, no necesita hacer nada, no necesita cambiar nada en su cadena de compilación, todo va completamente automático. Normalmente puede dejar de leer aquí, pero si lo necesita, ¡proporcionamos un control total del UUID! Esto se explica en el siguiente párrafo.

Funciones actualizadas

Para soportar esta nueva característica, hemos actualizado la función File. getAppInfo() para devolver el UUID de la aplicación cuando se aplica al ejecutable de la aplicación. He aquí un fragmento de código de ejemplo:

var $app:=File("/Applications/myApp.app/Contents/MacOS/myApp")
var $info:=$app.getAppInfo()

Y he aquí un ejemplo de resultado:

{
  "archs": [
    {
      "type": 16777223,
      "name": "x86_64",
      "uuid": "9C286FBFFAAA242FEBF462654C950ECF"
    },
    {
      "type": 16777228,
      "name": "arm64",
      "uuid": "8D8AA28824AACC558AB3D287A43EC53A"
    }
  ]
}

Además, la función File. setAppInfo() se ha mejorado para permitirle definir su propio UUID si lo desea. Así es como puede hacerlo

var $app:=File("/Applications/myApp.app/Contents/MacOS/myApp")
var $info:=$app.getAppInfo()
 
// regenerate uuids for all architectures
For each ($arch; $info.archs)
  $arch.uuid:=Generate UUID
End for each
 
// update the app with the new uuids
$app.setAppInfo($info)

Esperamos que esta función mejore la experiencia del usuario con sus aplicaciones desplegadas, garantizando que sean únicas y estén mejor integradas en entornos macOS.

¡Feliz programación!

Avatar
• Propietario de producto - Damien Fuzeau se ha unido al equipo de 4D Product en febrero de 2019. Como Propietario de producto, está a cargo de escribir historias de usuario, y luego traducirlas a especificaciones funcionales. Su trabajo también implica asegurarse de que las implementaciones de funcionalidades entregadas estén cumpliendo con las necesidades del cliente. Damien es licenciado en ingeniería de software por la Universidad de Nantes. Estuvo más de 23 años en su anterior empresa, primero como desarrollador (descubriendo 4D en 1997), y más tarde como gerente de ingeniería y arquitecto de software. Esta compañía es un Partner OEM de 4D y ha desplegado softwares empresariales basados en 4D para miles de usuarios, en cientos de servidores. Por lo tanto, Damien está acostumbrado al desarrollo y despliegue de 4D en un contexto multilingüe.