Mobile export and signing
· 2 min read
balaur export fused a pack onto a runtime for Linux, macOS or Windows.
Now the same command writes an iOS .app, an Android APK layout, and a
signed macOS bundle.
What landed
- Mobile targets.
--target ioswrites a.appwithgame.bpakbeside the executable;--target androidan APK layout with it underassets/. The engine reads the pack from the bundle instead of from its own file. - A signed Mac. A flat fused binary cannot be validly signed —
appending bytes is exactly what a signature cannot cover — so
--appbuilds a.appwith the pack as a sealed resource and signs it, ad hoc or with--sign "Developer ID Application: …". - Templates on demand. Exporting for a platform you are not on offers to
download that platform's runtime from the engine's own release tag,
checked against
SHA256SUMS, into a per-user cache.--no-downloadfor CI. balaur update. Replaces the whole install — binary, bundled editor, runtime template — with the latest published build, verified against the release's checksums.--checkonly reports.
balaur export my-game --target ios # -> my-game.app
balaur export my-game --target android # -> my-game-android/
balaur export my-game --target macos-universal --app # -> a signed .app
A pack is bytecode, scenes and assets in sorted key order, so the same sources give the same bytes on any machine, and a packed run is pure interpretation, which is what lets it land on platforms that forbid JIT. Shipping a game has every flag.
