Applicate & Packaging
APPLICATE packages OQL programs, HTML, JS, CSS, and assets into native application files for any target platform. Source is a folder — any mix of OQL, HTML, JS, and assets. Output is a platform-native package.
Syntax
APPLICATE TYPE "android/apk" FROM "/root/appfolder/" TO "/root/new.apk" SET ?file
APPLICATE TYPE "android/apk" FROM "/root/appfolder/" TO "/root/new.apk"
SIGN WITH "/root/keys/my.keystore"
IDENTIFIER "com.ocalt.myapp"
TITLE "MyApp"
SET ?file
Output Targets
| Type string | Output |
|---|---|
android/apk | Android APK — direct install |
android/aab | Android App Bundle — Play Store submission |
windows/exe | Windows executable |
windows/installer | Windows installer (MSI/NSIS) |
macos/app | macOS application bundle |
ios/app | iOS application package |
linux/app | Linux binary |
linux/appimage | Linux AppImage — portable |
linux/deb | Debian package |
linux/rpm | RPM package |
web/pwa | Progressive Web App — generates manifest and service worker |
Modifiers
| Modifier | Syntax | Description |
|---|---|---|
SIGN WITH | SIGN WITH "/root/keys/my.keystore" | Path to signing key, keystore, certificate, or provisioning profile. Omit to use the Ocalt-managed default signer. |
IDENTIFIER | IDENTIFIER "com.ocalt.myapp" | Bundle identifier / package name |
TITLE | TITLE "MyApp" | Application display name |
Default Signer
If SIGN WITH is omitted, Ocalt generates and manages a default signing key per namespace. The app is signed and installable — the identity is Ocalt's rather than the developer's own. Override at any time by providing a key.
Manifest File
Place ocalt.manifest.json in the source folder root to set app metadata that applies to all builds from that folder. This is a literal external configuration file the packager reads, not OcaltQL syntax.
{
"version_name": "1.0.0",
"version_code": 1,
"icon": "appicon.png",
"icons": {
"android": "appicon-android.png",
"ios": "appicon-ios.png",
"windows": "appicon.ico",
"macos": "appicon.icns"
},
"splash_screen": "splash.png",
"permissions": ["camera", "location"],
"min_os": "12.0",
"orientation": "portrait",
"description": "My app built with OQL",
"author": "Ocalt (Pty) Ltd"
}
icon is the default icon used for any platform without its own entry in icons. Icon defaults to /appfolder/appicon.png if ocalt.manifest.json is absent or specifies no icon at all. version_name is the human-readable version string; version_code is the integer build number required by app stores for update ordering. APPLICATE modifiers (IDENTIFIER, TITLE) override manifest values.
Examples
APPLICATE TYPE "web/pwa" AT "/root/sites/mysite/" SET ?out
(* Injects manifest.json and a service worker directly into the already-live
Site Mode folder, in place — no separate source, no separate destination.
A PWA has no packaged artifact; it must live where it is actually served. *)
APPLICATE TYPE "android/apk" FROM "/root/myapp/"
TO "/root/releases/myapp-v1.apk"
SIGN WITH "/root/keys/release.keystore"
IDENTIFIER "com.myco.myapp"
TITLE "My App"
SET ?file
APPLICATE TYPE "linux/deb" FROM "/root/myapp/" TO "/root/myapp.deb" SET ?pkg