Validate, build, package, hand over
minikit validate # the project: manifest, permissions vs code, web files, SDK, toolkit pin
minikit test # flutter test (--chrome runs them in Chrome)
minikit build # flutter build web with the host's settings, then output checks
minikit package # validate → build → zip + sha256 + catalog manifest + host entry
What build does
flutter build web --release --no-web-resources-cdn --base-href / --pwa-strategy none plus
build.extra_args from minikit.yaml and anything you pass. The renderer is bundled (the host
may block CDNs), the base href is / (the host serves the entry folder as the root), and no
service worker is registered (a worker on the host's stable per-app origin could serve stale
files after an update). Afterwards it checks build/web (codes MK13xx) and prints sizes by group.
What package writes
Into dist/ (or package.out):
| File | Purpose |
|---|---|
<id>-<version>.zip |
the bundle — reproducible: sorted entries, one fixed timestamp, no OS litter, so the same build always has the same sha256 |
<id>-<version>.sha256 |
shasum -a 256 -c compatible |
<id>-<version>.manifest.json |
the framework host's catalog entry (MiniAppManifest): source URL, sha256, entry, permissions, metadata with protocol and SDK versions |
<id>-<version>.host-entry.json |
the superapp's mini_apps[] entry for config.json |
<id>-<version>.report.json |
what was checked and measured |
Pass --url https://…/<id>-<version>.zip when you know where the zip will be published;
otherwise the manifest carries a placeholder to edit. minikit validate --bundle <zip> applies the
host's own rules to any zip (≤ 100 MiB download, ≤ 300 MiB unpacked, ≤ 10 000 files, no links or
unsafe paths, entry page present, a real Flutter build, miniapp.json inside).
Handing over
Send the host team the zip and the two JSON files (or the whole dist/). They upload the zip,
add the entry to the catalog, and the framework host installs it verifying the sha256. Final
verification of native behaviour happens on a device with mini_app_host's example app.