Aero

Clone this repo:

Branches

  1. 451673c Add support for changelogs and critical updates by j · 2 years, 11 months ago main
  2. 96bdbf2 Working versioned in-app OTAs by j · 2 years, 11 months ago
  3. ddc1b72 working expo updates on iOS (broken on Android for some reason) by j · 2 years, 11 months ago
  4. 1f7d04e Add asset URLs to manifest by j · 2 years, 11 months ago
  5. 008c47c Implement basic manifest and asset server by j · 2 years, 11 months ago

Aero

Aero is a simple software distributor.

API

Base URL: https://aero.jottocraft.com/<product identity>/<artifact type>

Providing a channel name serves the latest version in that channel

Artifact types

  • msix Windows MSIX (only supports msixbundle, no optional or related packages)
    • /ms-appinstaller Redirects to a ms-appinstaller URI for installation via App Installer
    • /<product identity>.appinstaller
    • /<product identity>.msixbundle
    • /Dependencies/<filename>
  • expo Expo JavaScript OTA updates
    • /protocol1 Endpoint for requests made via the Expo Updates v1 Protocol, like u.expo.dev, this also optionally accepts runtime-version, channel-name, and platform via query parameters
    • /assets/<asset key> Gets an asset
    • /<manifest ID> Gets a specific update by manifest version
  • Win32 Squirrel (soon)
  • Android APK (soon)

Uploading a deployment

  • MSIX
    • Drag the .appinstaller and index.html files into the deployment folder
    • Rename .{appinstaller|appxsym|cer|msixbundle} files to .{appinstaller|appxsym|cer|msixbundle}
    • Upload the deployment folder to /<product identity>/msix/<deployment folder> in R2
    • Create a release in Sanity and set the folder parameter to the name of the uploaded deployment folder
    • Profit
  • Expo
    • Drag all assets and manifests into /<product identity>/expo. Assets should be named after their key (with no extension), and manifests should be named in the format <manifest ID>.json.

Copyright (c) jottocraft 2023