Click-пакунок

Кожен програмний пакунок click повинен містити щонайменше 3 файли:

файл manifest.json

Містить визначення, такі як назва програми, опис, автор, цільовий framework sdk та версія.

Example manifest.json file:

{
    "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"
        }
    }
}
Файл політики профілю AppArmor

Містить інформацію щодо політики, необхідної для коректної роботи програми. Для більш детальної інформації щодо цього файлу перегляньте нижче розділ Безпека та ізоляція програми.

файл .desktop

Файл запускача містить інформацію для UT про те як запускати програму, які назва та значок повинні бути на стільниці та ще деякі властивості.

Example of app.desktop:

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

Невиключний перелік властивостей:

  • Name: Назва програми для запускача

  • Exec: Шлях до виконуваного файлу

  • Icon: Шлях до значка

  • Terminal: false, якщо не потрібно запускати в термінальному вікні

  • Type: Вказує на тип файлу запускача. Може бути Application (програма), Link (ярлик) або Directory (каталог).

  • X-Ubuntu-Touch: true, щоби програма була видимою

  • X-Ubuntu-XMir-Enable: true, якщо програма створена для X

  • X-Ubuntu-Supported-Orientations: landscape чи portrait для визначення орієнтування Вашої програми під час запуску в альбомному чи портретному режимі відповідно.

Безпека та ізоляція програми

Усі програми Ubuntu обмежені дотриманням механізму контролю доступу Apparmor (див. Application Confinement) , що значить, що вони мають доступ тільки до своїх власних ресурсів та ізольовані від інших програм та частин систем. Розробник повинен визначити які групові політики необхідні для програми або для набору функціоналу з файлом apparmor .json.

Example apparmor.json file:

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

}

Повний список доступних групових політик міститься у Групи політик AppArmor.