Click package#
Ogni pacchetto di applicazione click
deve contenere almeno 3 files:
- il file
manifest.json
Contiene dichiarazioni dell’applicazione quali il nome dell’applicazione, la descrizione, l’autore, l’obiettivo sdk del framework e la versione.
Esempio di file manifest.json`
{ "name": "myapp.author", "title": "App Title", "version": "0.1" "description": "Description of the app", "framework": "ubuntu-sdk-16.04", "maintainer": "xxxx <xxx@xxxx>", "hooks": { "myapp": { "apparmor": "apparmor.json", "desktop": "app.desktop" } } }
- File della politica (policy) del profilo AppArmor
Contiene la politica di cui l’app ha bisogno per il suo corretto funzionamento. Vedi «Sicurezza e isolamento dell’app» qui sotto per ulteriori informazioni su questo file.
- il file
.desktop
Il file di avvio indicherà a UT come avviare l’app, quale nome e icona visualizzare nella schermata iniziale e alcune altre proprietà.
Esempio di
app.desktop
:[Desktop Entry] Name=Application title Exec=qmlscene qml/Main.qml Icon=assets/logo.svg Terminal=false Type=Application X-Ubuntu-Touch=true
Elenco non esaustivo delle proprietà:
Nome: il titolo dell’applicazione è mostrato nella dash
Exec: Percorso al file eseguibile
Icon: Percorso dell’icona da mostrare
Terminal:
false
non funzionerà in una finestra del terminaleType: Specifica il tipo di file eseguibile. Può essere Application, Link o Directory.
X-Ubuntu-Touch:
true
affinchè la app sia visibileX-Ubuntu-XMir-Enable:
true
se la app è creata per XX-Ubuntu-Supported-Orientations:
landscape
orportrait
to force your app start in landscape mode and portrait mode respectively.
Sicurezza e isolamento della app#
All Ubuntu apps are confined respecting AppArmor access control mechanism (see Application Confinement) , meaning they only have access to their own resources and are isolated from other apps and parts of the system. The developer must declare which policy groups are needed for the app or scope to function properly with an apparmor .json
file.
Esempio apparmor.json
file:
{
"policy_version": 16.04,
"policy_groups": [
"networking",
"webview",
"content_exchange"
]
}
For a full list of available policy groups, see AppArmor Policy Groups.