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 terminale

  • Type: Specifica il tipo di file eseguibile. Può essere Application, Link o Directory.

  • X-Ubuntu-Touch: true affinchè la app sia visibile

  • X-Ubuntu-XMir-Enable: true se la app è creata per X

  • X-Ubuntu-Supported-Orientations: landscape or portrait 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.