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

Contains which policy the app needs to work properly. See Security and app isolation below for more information on this file.

.desktop file

Файл лаунчера сообщит 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:Определяет тип исполняемого файла. Это может быть приложение, ссылка или каталог.

  • 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"
    ]

}

For a full list of available policy groups, see Группы политик AppArmor.