Paquet Click#

Chaque paquet d’application click doit contenir au moins 3 fichiers :

Le fichier manifest.json

Contient des informations sur l’application, telles que son nom, sa description, son auteur, la cible de kit de développement de logiciel (Software Development Kit ou SKD) et la version.

Exemple de fichier 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"
        }
    }
}
Le fichier de règles du profil d’AppArmor

Contient les règles dont l’application a besoin pour fonctionner correctement. Voir Sécurité et confinement d’applications ci-dessous pour plus d’informations sur ce fichier.

Le fichier .desktop

Le fichier du lanceur indique à Ubuntu Touch comme lancer l’application, quel nom et quelle icône afficher sur l’écran d’accueil, ainsi que d’autres propriétés.

Exemple de app.desktop

[Desktop Entry]
Name=Application title
Exec=qmlscene qml/Main.qml
Icon=assets/logo.svg
Terminal=false
Type=Application
X-Ubuntu-Touch=true

Liste non exhaustive de propriétés :

  • Nom : le titre de l’application affiché dans le tableau de bord

  • Exec : le chemin d’accès au fichier exécutable

  • Icon : le chemin vers l’icône à afficher

  • Terminal : ne s’exécute pas dans une fenêtre de terminal si défini à false (faux)

  • Type : spécifie le type du fichier du lanceur. Le type peut être Application, Link (Lien) ou Directory (Répertoire).

  • X-Ubuntu-Touch : true (vrai) pour rendre l’application visible

  • X-Ubuntu-XMir-Enable : true (vrai) si votre application est construite pour le système de fenêtrage X

  • X-Ubuntu-Supported-Orientations : landscape ou portrait pour forcer votre démarrage d’appli en mode paysage et portrait.

Sécurité et confinement d’application#

Toutes les applications et les moteurs de recherche d’Ubuntu sont confinés en respectant le mécanisme de contrôle d’accès d’AppArmor (voir Confinement d’application), ce qui signifie qu’ils ont seulement accès à leurs propres ressources et sont isolés des autres applications et des autres parties du systèmes. Le développeur doit déclarer dans un fichier apparmor .json quels groupes de règles sont nécessaires pour que l’application ou le moteur de recherche fonctionne correctement.

Exemple de fichier apparmor.json :

{
    "policy_version": 16.04,
    "policy_groups": [
        "networking",
        "webview",
        "content_exchange"
    ]

}

Pour la liste complète des groupes de politique disponibles, voir Groupes de stratégie d’AppArmor.