How publishing works
The technical pipeline VULK runs to turn your generated app into a signed, submitted store app.
How publishing works
VULK turns the app you generated into native iOS and Android apps, then builds, signs, and submits them — using your own developer credentials.
The pipeline
generate (VULK)
→ build web (vite build → dist/)
→ native projects (Capacitor 8 → ios/ + android/ projects)
→ iOS: xcodebuild archive → sign → .ipa → upload → submit
→ Android: gradle bundleRelease → sign → .aab → upload → release track1. Native projects — Capacitor 8
Your compiled app is packaged with Capacitor 8 (appId =
reverse-DNS bundle id, webDir = dist). This produces a real Xcode
project and a real Gradle project that VULK fully controls — assets are
bundled to work offline, and native capabilities (push, haptics, share,
status-bar, deep links) are added so the app is a full native app (this
matters for review — see
Requirements).
2a. iOS build & sign — on macOS
xcodebuild archive + -exportArchive produce a signed .ipa. Signing
uses App Store Connect API-managed signing (-allowProvisioningUpdates
with your API key): VULK creates/fetches the distribution certificate and
provisioning profile via the API automatically — no manual portal work.
iOS archiving and signing run on macOS, home of Apple's
xcodebuild— the same for every tool that ships to the App Store. VULK runs this on macOS build infrastructure for you.
2b. Android build & sign — on Linux
./gradlew bundleRelease produces an .aab. Signing uses an upload
key with Play App Signing (Google holds the real distribution key;
the upload key is recoverable via Play support if lost). VULK generates
and securely stores the per-app upload keystore.
3. Upload & submit
- iOS: the
.ipais uploaded to App Store Connect, VULK waits for Apple build processing, attaches the build to an App Store version, fills metadata/screenshots, then submits for review — all via the App Store Connect API with your key. TestFlight first is recommended. - Android: the
.aabis uploaded via the Google Play Developer API (edits.insert → bundles.upload → tracks.update → commit) to the track you choose (internal → closed → open → production).
Who is the publisher
Every API call is signed with your key and runs against your developer account. VULK is your automation — exactly the model EAS Submit, Codemagic and fastlane use. You remain the developer of record and the responsible submitter (required by Apple Guideline 4.2.6 and the Google Play API terms).
Recommended first run
Publish to TestFlight (iOS) / the internal track (Android) before production. These validate the entire build+sign+upload pipeline on a real device ahead of public App Review, so you can confirm everything works end-to-end safely. See Requirements for the review steps of a public release.