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!