The app manifest is an xml file in the root folder of your app that defines all the metadata of your app. The following paragraphs will explain the individual parts of the manifest file.
The manifest contains the elements groupId, appId and name to identify the plugin. A good practice is to use your company name and the name of your division as groupId to prevent name clashes.
<groupId>com.novomind.ishop.plugin</groupId> <appId>ishop-plugin-helloworld</appId> <name>Hello!</name> <vendor>novomind AG</vendor>
Your plugin should contain a version and a supported version range of the target product:
<version>1.2</version> <supportedVersion> <minimum>22.0.0</minimum> <maximum>27.0.0</maximum> </supportedVersion> <product>ishop</product>
The manifest defines localized descriptions in multiple formats that are displayed in the app store. An icon and some screenshots can be provided as well as search engine optimized sellingPoints
<categories> <category>backoffice</category> <category>frontend</category> </categories> <longDescriptions> <longDescription locale="en"> This description is written in [markdown](https://en.wikipedia.org/wiki/Markdown) </longDescription> </longDescriptions> <screenshots> <screenshot>META-INF/manifest-resources/screenshot1.png</screenshot> <screenshot>META-INF/manifest-resources/screenshot2.png</screenshot> <screenshot>META-INF/manifest-resources/screenshot3.png</screenshot> </screenshots> <icon>META-INF/manifest-resources/icon.png</icon> <sellingPoints> <sellingPoint locale="en">Simple configuration</sellingPoint> <sellingPoint locale="en">CSS included</sellingPoint> <sellingPoint locale="en">Text included</sellingPoint> </sellingPoints>
Finally the manifest also describes contact information and whether it is allowed to download the plugin:
<download>false</download> <email>email@example.com</email> <phone>040-8080712243</phone>
There is a
metadata section where product specific data is stored. This usually contains technical configuration. Refer to the corresponding
section of the target product to find out what can be configured here.
You can download the schema to validate your app's manifest against it: