Po aktualizaci Sequoia se systém macOS spoléhá na UUID aplikací pro různé kontroly soukromí a zabezpečení, například pro přístup k síti. Tato nová funkce systému macOS by mohla způsobit problémy na straně koncových uživatelů, například nutnost často znovu autorizovat integrované 4D aplikace. Abychom to vyřešili, má nyní počínaje verzí 4D 20 R9 každá aplikace 4D vytvořená pro systém macOS své vlastní UUID aplikace. Tato změna zajišťuje lépe vyladěné řízení přístupu. Pojďme se ponořit do podrobností.
macOS Sequoia a UUID aplikací
Se zavedením verze Sequoia nyní macOS zakládá některá nastavení soukromí a zabezpečení na UUID aplikací namísto jejich názvů. Pokud pak více aplikací sdílí stejný UUID, může to způsobit problémy při ovládání systému. To se týká zejména přístupu k místní síti, jak je vysvětleno v této technické poznámce. Příslušná nastavení se nacházejí v dialogovém okně Nastavení systému na panelu Místní síť v položce Soukromí a zabezpečení:
Jedinečné identifikátory UUID aplikací
Před verzí 4D 20 R9 sdílely sestavené aplikace 4D stejné UUID jako aplikace 4D Volume Desktop nebo 4D Server, která byla použita jako zdroj.
Nyní se při sestavování aplikace automaticky nastaví její UUID pomocí kombinace zdrojové aplikace 4D a vašeho identifikátoru aplikace. Tím je zajištěno, že vaše aplikace bude v systémech macOS považována za jedinečnou a bude zachován stejný identifikátor UUID vaší aplikace, dokud budete používat stejnou verzi zdrojové aplikace 4D.
Toto nové chování se samozřejmě vztahuje i na komponentu Build4D!
Dobrá zpráva, nic nemusíte dělat, nic není třeba měnit ve vašem sestavovacím řetězci, vše probíhá zcela automaticky. Obvykle zde můžete přestat číst, ale pokud potřebujete, poskytujeme plnou kontrolu nad UUID! To je vysvětleno v následujícím odstavci.
Aktualizované funkce
Pro podporu této nové funkce jsme aktualizovali funkci File. getAppInfo() tak, aby při použití na spustitelný soubor aplikace vracela UUID aplikace. Zde je ukázkový úryvek kódu:
var $app:=File("/Applications/myApp.app/Contents/MacOS/myApp")
var $info:=$app.getAppInfo()
A zde je ukázka výsledku:
{
"archs": [
{
"type": 16777223,
"name": "x86_64",
"uuid": "9C286FBFFAAA242FEBF462654C950ECF"
},
{
"type": 16777228,
"name": "arm64",
"uuid": "8D8AA28824AACC558AB3D287A43EC53A"
}
]
}
Kromě toho byla funkce File. setAppInfo() vylepšena tak, aby v případě potřeby umožňovala definovat vlastní UUID. Zde je uveden postup, jak to můžete udělat:
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)
Doufáme, že tato funkce zlepší uživatelskou zkušenost s vašimi nasazenými aplikacemi a zajistí jejich jedinečnost a lepší integraci v prostředí systému macOS.
Šťastné kódování!