πMetadata
Every app comes with two metadata files that we can generate using an online tool. Open AppStream Metainfo Creator and fill out the form with your app's info:
Don't worry about generating Meson snippets, as we'll cover that in the next section. After you select "Generate", you should have two resulting files that you can copy.
MetaInfo
First is a MetaInfo file. This file contains all the information needed to list your app in App shop. It should look something like this:
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>com.github.myteam.myapp</id>
<name>My App</name>
<summary>Proves that we can use Vala and Gtk</summary>
<metadata_license>CC-BY-4.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<description>
<p>
A quick summary of your app's main selling points and features. Just a couple sentences per paragraph is best
</p>
</description>
<launchable type="desktop-id">com.github.myteam.myapp.desktop</launchable>
</component>
In your project's root, create a new folder called "data", and save your MetaInfo to a new file called "hello-again.metainfo.xml".
Screenshots
For the purposes of this tutorial, screenshots are optional, but they are required for publishing in App Shop. Screenshots should only show your app on a transparent background and not contain any additional text or illustrations. You can use the caption
tag to provide translatable and accessible descriptions of your screenshots.
<screenshots>
<screenshot type="default">
<caption>The most important feature of my app</caption>
<image>https://raw.githubusercontent.com/myteam/myapp/1.0.0/data/screenshot.png</image>
</screenshot>
</screenshots>
Content Warnings
We use the Open Age Rating Service (OARS) standard to describe sensitive content that may be present in your app so that people using it can be informed and actively consent to seeing that content. OARS data is required and can be generated by taking a short survey:
Branding
You can also specify a brand color for your app by adding the branding
tag inside the component
tag. Colors must be in hexadecimal, starting with #
. The background will automatically be given a slight gradient in your app's banner.
<branding>
<color type="primary">#f37329</color>
</branding>
Releases
Your app must have a release
tag for every version you wish to publish in AppCenter. Release notes show up in App shop and should be aimed at the people who use your app. Avoid technical language and developer-facing changes and focus more on what people can expect to see in this update.
<releases>
<release version="1.0.0" date="2022-09-08" urgency="medium">
<description>
<p>New features:</p>
<ul>
<li>My app can now do a great new thing</li>
</ul>
<p>Fixes:</p>
<ul>
<li>An annoying behavior no longer occurs</li>
</ul>
</description>
</release>
</releases>
You can read more about the release tag here, including more features and formatting options.
Desktop Entry
This file contains all the information needed to display your app in the Applications Menu and in the Dock. The one generated from AppStream Metainfo Creator looks something like this:
[Desktop Entry]
Version=1.0
Type=Application
Name=My App
Comment=Proves that we can use Vala and Gtk
Categories=Development;Education;
Icon=com.github.myteam.myapp
Exec=com.github.myteam.myapp
Terminal=false
Copy the contents of your Desktop Entry and save it to the data folder you created earlier. Name this new file "hello-again.desktop".
Mark Your Progress
Each time we add a new file or make a significant change it's a good idea to commit a new revision and push to GitHub. Keep in mind that this acts as a backup system as well; when we push our work to GitHub, we know it's safe and we can always revert to a known good revision if we mess up later.
Add all of these files to git
and commit a revision:
git add data/
git commit -am "Add Metadata files"
git push
Now that we've got all these swanky files laying around, we need a way to tell the computer what to do with them. Ready for the next chapter? Let's do this!
Last updated