Click-пакет¶
Каждое приложение, распространяемое в виде click-пакета, должно содержать как минимум 3 файла:
- файл
manifest.json Здесь содержатся важные определения приложения — название, описание, автор, версия и целевой framework sdk.
Example
manifest.jsonfile:{ "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.
.desktopfileФайл лаунчера сообщит 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, если приложение скомпилировано для XX-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.