i99dash docs
Native apps

Icon and store listing

Control the icon, name, and description your native app shows on the car and in the developer portal.

On i99dash apk publish, the CLI reads the launcher icon and label straight out of your .apk with a pure-JS parser and sends them as storefront metadata. Your app shows its real icon and name on the car and in the developer portal instead of a placeholder and a name derived from the package id.

You can override any of these values from apk.json. The override always wins over the auto-extracted value.

What gets extracted

Two values are pulled from the .apk automatically:

  • The launcher icon.
  • The launcher label (the app name).

Extraction is best-effort. If it fails — for example, an APK that ships only an adaptive or vector icon the parser cannot rasterise — the publish still succeeds and the app simply has no icon until you set iconPath.

Override fields in apk.json

Set any of these optional fields to override the extracted metadata. See apk.json reference for the full manifest.

  • displayName — storefront name override. A bare string maps to the en fallback key; a locale map is sent verbatim. If omitted, the CLI uses the label extracted from the .apk.
  • description — storefront description. APKs carry no store description, so this field is the only source; it is omitted if you do not set it.
  • iconPath — relative path to a PNG, WEBP, or JPEG to use instead of the extracted icon.

displayName and description are locale maps that the car and portal localize per the viewer's language. Use a map when you want to ship more than one language:

{
  "id": "com.acme.dashcam",
  "versionName": "1.2.0",
  "versionCode": 5,
  "apkPath": "./app-release.apk",
  "signerSha256": "AA:BB:CC:...",
  "category": "utilities",
  "displayName": {
    "en": "Dash Cam",
    "ar": "كاميرا القيادة"
  },
  "description": {
    "en": "Record the road ahead and save clips to local storage."
  },
  "iconPath": "./store-icon.png"
}

Icon constraints

Icon files are validated on the server:

  • PNG, JPEG, or WEBP only. SVG is rejected.
  • Maximum 1 MB.

Reach for iconPath when the APK only ships an adaptive or vector icon the extractor cannot rasterise, or when the default launcher label is in the wrong language.

Metadata and the signature

The icon and label ride alongside the signed manifest — they are never inside it, so they never affect the signature. Changing your listing does not change the bytes that get attested.

Metadata refreshes on each publish: the CLI re-extracts the icon and label and re-applies your apk.json overrides every time you run i99dash apk publish. To change your icon, name, or description, update apk.json (or rebuild the APK with a new label) and publish a new version.

A publish needs a strictly greater versionCode than the package current max. There is no metadata-only update — refresh your listing by publishing a new version.

See the CLI reference for the full i99dash apk publish flow.

On this page