Mit dem Sequoia-Update verlässt sich macOS nun auf die UUID von Anwendungen für verschiedene Datenschutz- und Sicherheitskontrollen, wie z. B. den Netzwerkzugang. Diese neue Funktion von macOS könnte zu Problemen auf der Endnutzerseite führen, z. B. dass die erstellten 4D Anwendungen häufig neu autorisiert werden müssen. Um dies zu beheben, hat ab 4D 20 R9 jede 4D Anwendung, die für macOS erstellt wurde, eine eigene Anwendungs-UUID. Diese Änderung gewährleistet eine besser abgestimmte Zugriffskontrolle. Schauen wir uns die Details an.
macOS Sequoia und Anwendungs-UUIDs
Mit der Einführung der Sequoia Version basiert macOS nun einige Datenschutz- und Sicherheitseinstellungen auf Programm-UUIDs statt auf deren Namen. Wenn mehrere Programme dieselbe UUID verwenden, kann dies zu Problemen bei der Systemsteuerung führen. Dies ist insbesondere für den Zugriff auf das lokale Netzwerk relevant, wie in diesem technischen Hinweis erklärt wird. Die betreffenden Einstellungen befinden sich im Dialogfeld Systemeinstellungen unter dem Bereich Lokales Netzwerk des Elements Datenschutz und Sicherheit:
Eindeutige Anwendungs-UUIDs
Vor 4D 20 R9 hatten erstellte 4D Anwendungen die gleiche UUID wie die als Quelle verwendete 4D Volume Desktop oder 4D Server Anwendung.
Jetzt wird die UUID beim Erstellen einer Anwendung automatisch durch eine Kombination aus der 4D Quellanwendung und Ihrer Anwendungskennung festgelegt. Dadurch wird sichergestellt, dass Ihre Anwendung auf macOS Systemen als eindeutig gilt und die gleiche UUID für Ihre Anwendung beibehalten wird, solange Sie die gleiche Version der 4D Quellanwendung verwenden.
Natürlich wird dieses neue Verhalten auch auf die Build4D Komponente angewendet!
Gute Nachrichten: Sie müssen nichts tun, nichts in Ihrer Build-Kette ändern, alles läuft vollautomatisch. Normalerweise können Sie hier aufhören zu lesen, aber wenn Sie es brauchen, bieten wir Ihnen die volle Kontrolle über die UUID! Dies wird im folgenden Abschnitt erklärt.
Aktualisierte Funktionen
Um diese neue Funktion zu unterstützen, haben wir die Funktion File. getAppInfo() so aktualisiert, dass sie die Anwendungs-UUID zurückgibt, wenn sie auf die ausführbare Datei der Anwendung angewendet wird. Hier ist ein Beispielcodeausschnitt:
var $app:=File("/Applications/myApp.app/Contents/MacOS/myApp")
var $info:=$app.getAppInfo()
Und hier ist ein Beispielergebnis:
{
"archs": [
{
"type": 16777223,
"name": "x86_64",
"uuid": "9C286FBFFAAA242FEBF462654C950ECF"
},
{
"type": 16777228,
"name": "arm64",
"uuid": "8D8AA28824AACC558AB3D287A43EC53A"
}
]
}
Außerdem wurde die Funktion File. setAppInfo() erweitert, so dass Sie auf Wunsch Ihre eigene UUID definieren können. So können Sie es tun:
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)
Wir hoffen, dass diese Funktion die Benutzererfahrung mit Ihren bereitgestellten Anwendungen verbessert und sicherstellt, dass sie einzigartig sind und besser in macOS-Umgebungen integriert werden.
Viel Spaß beim Programmieren!