Back
Publish to App Stores

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 track

1. 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 .ipa is 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 .aab is 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).

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.

On this page

VULK Support

Online

Hi! How can I help you today?

Popular topics

AI support • support.vulk.dev