An appstore listing is built from the .pbw file, some text fields and a set
of images. This guide lists what is required so that everything is ready
before the submission starts. All three publishing routes described in
Publishing an App use the same listing
fields and the same image sizes.
.pbw FileThe appstore reads the app's type (watchface or watchapp), UUID, version and
target platforms from the .pbw file. These values come from
package.json, so check them before building the release:
watchapp.watchface decides whether the listing is a watchface or a
watchapp. This cannot be changed in the Developer Dashboard.
uuid must be unique across the whole appstore. If another app already uses
it, the submission is rejected. Each app keeps its UUID for all later
releases, since the UUID is how a new release is matched to the existing
listing.
version must contain only numbers and dots, and each segment must be 255 or
less. Each release of an app must have a version that has not been used
before.
targetPlatforms decides which platforms the .pbw contains binaries
for. The appstore reads the platform list from targetPlatforms when it
is present and otherwise from the binaries in the .pbw, and offers each
binary to the watches that can run it: an aplite binary also serves
basalt, diorite, flint and emery, a basalt binary also serves emery, a
diorite binary also serves flint and emery, and a chalk binary also serves
gabbro. Build for the newer platforms directly to use their full display.
Read App Metadata for details.
The .pbw file can be at most 4.4 MB.
| Field | Watchface | Watchapp | Notes |
|---|---|---|---|
| App name | Required | Required | Defaults to the name in the .pbw. |
| Description | Required | Required | Plain text. |
| Category | - | Required | One of Daily, Tools & Utilities, Notifications, Remotes, Health & Fitness, Games. Watchfaces are listed under Faces automatically. |
| Website URL | Optional | Optional | |
| Source code URL | Optional | Optional | |
| Release notes | Optional | Optional | Per release. |
| Companion app | - | Optional | Name, Play Store URL and a 144×144 icon for an Android companion app. |
Note: The appstore does not support the timeline web API. Apps that use local pins work as normal.
All images are PNG, JPEG or GIF, at most 4.4 MB each. GIFs keep their animation. Screenshots must have exactly the dimensions of the platform's display and must not be framed in a watch outline.
| Image | Size | Notes |
|---|---|---|
| Screenshots for aplite, basalt, diorite, flint | 144×168 | Up to 5 per platform. |
| Screenshots for chalk | 180×180 | Up to 5. |
| Screenshots for emery | 200×228 | Up to 5. |
| Screenshots for gabbro | 260×260 | Up to 5. |
| Banner | 720×320 | Optional. One per platform. Shown at the top of the listing. |
| Small icon | 80×80 | Watchapps only. |
| Large icon | 144×144 | Watchapps only. |
Icons are optional. When one or both icons are missing, the appstore generates them from the app name.
Screenshots can be taken from the emulator with the pebble tool. The
--all-platforms and --gif-all-platforms flags of pebble screenshot
save one image per target platform under screenshots/ in the project
directory, already at the correct size:
$ pebble screenshot --all-platforms
Read pebble screenshot for the other options.
Every app has one of three visibility settings. It is chosen when the app is submitted and can be changed at any time from the Developer Dashboard.
| Setting | Search and browsing | Direct link and install |
|---|---|---|
| Listed | Yes | Yes |
| Unlisted | No | Yes |
| Hidden | No | No |
Apps submitted from the Developer Dashboard, the pebble tool or CloudPebble
start as Listed. Use Unlisted for a beta that is shared by link only, and
Hidden to take an app offline. Hiding an app does not remove it from watches
where it is already installed, and cached appstore pages can take up to ten
minutes to disappear.
Visibility applies to the app as a whole. Each release also has its own published or draft state, and only published releases can be installed.