Skip to content
This repository has been archived by the owner on May 28, 2023. It is now read-only.

Before You Publish

Daniel Foré edited this page Mar 5, 2018 · 38 revisions

We have a few requirements and suggestions for publishing your app to AppCenter. For a quick intro on writing apps for elementary OS, check out our Getting Started guide. For more developer-oriented tips, see the Tips series on Medium.

Requirements

These are hard requirements for all apps submitted to AppCenter. Automated and human reviews will check these requirements before each app and app update is approved and released to users.

Technical Requirements

Your app must be hosted in a GitHub repository. AppCenter Dashboard works by importing source code from a GitHub repository and building it in a clean environment. Binaries cannot be uploaded.

Your app must come with Debian packaging. elementary OS uses Debian packages to manage software installation and updates. Your app cannot be downloaded without it. Your Debian packaging must not manually modify filesystem permissions.

Your app must be a native Gtk3 app. Web apps, Electron apps, Qt apps, and other non-native apps will be rejected during the review process. An exception to this rule would be for games, in which case as long as it uses the native system window decorations, it should be okay.

Your app must not attempt to modify, replace, or append software sources on the target system.

Metadata Requirements

Your app must install an appdata.xml file to /usr/share/metainfo. AppCenter uses this metadata to create a listing for your app. It cannot be displayed in AppCenter without it.

Your appdata.xml file must contain a screenshot tag that references a screenshot of your app with elementary OS default settings.

Your appdata.xml file must contain a developer_name tag that references your name or the name of your organization.

For more information about the appdata.xml format see, see the appstream specification.

Your app must install a .desktop file to /usr/share/applications. elementary OS uses a .desktop file to display your app in the applications launcher and the dock. Without this file, your app will not be visible to users.

Your .desktop file must not contain NoDisplay=true or anything else that prevents it from showing up in the applications launcher.

Your app must install icons to /usr/share/icons/hicolor in 32px, 48px, 64px, and 128px. These are the icon sizes that will be displayed in the Applications menu's search, grid, and category views, Multitasking View, the dock, and in AppCenter.

Legal Requirements

You must have permission to redistribute any software you attempt to publish through AppCenter. If you are not the copyright holder or the source code is not openly licensed, you likely do not have permission to redistribute the software.

You must have permission to use any trademarks in your software or its metadata. You may not publish your app using trademarks reserved by others.

Your app must comply with all applicable laws as well as the terms of any services your app utilizes.

Other Publishing Requirements

Naming

To protect both users and developers, your app's name must not be the same as or confusingly similar to an existing app in AppCenter, as determined by app reviewers.

Your app should not be named generically like "Web Browser" or "File Manager".

Your app should not use "elementary", "Pantheon", or other elementary brand names in its naming scheme.

App Stores

Your app cannot be an "app store," as ultimately determined by app reviewers. This includes but is not limited to apps that look and function confusingly similarly to AppCenter, provide software from other sources, link to an online app store, and/or facilitate payments for apps in the system repositories.

Suggestions

For the best experience, we strongly suggest the following before you publish your app:

Use a GitHub Organization

Once your app is submitted you cannot change the GitHub account that it is linked to. We recommend you use a GitHub organization as the owner of the repository so it can be transferred in the future if you so choose. This also makes it easier to manage community contributions.

Note that anyone with access to the GitHub organization will be able to manage releases and monetization.

Provide OARS Data

We recommend providing Open Age Rating Service (OARS) data in your app's appdata.xml. This is currently voluntary, but may become required in the future.