Magic Deploy

Where do you want to deploy?

Pick your target. LingCode handles the build, signing, and upload — each guide shows the exact one-time setup you'll do on the platform's side.

For iOS & Mac apps

Three ways to ship to App Store — pick what fits your workflow.

LingCode doesn't replace Xcode — it sits next to it. Use whichever combination matches the day you're having.

1. Xcode classic

Archive in Xcode → Window → Organizer → Distribute App. The path you already know. LingCode stays out of the way; your .xcodeproj works exactly as before.

2. LingCode end-to-end

One button. LingCode runs preflight checks, bumps the build number, archives with xcodebuild, signs, and uploads to App Store Connect via your .p8 API key. Setup once, deploy in 30 seconds after.

3. Hybrid

Let LingCode build & sign the .xcarchive; open Xcode Organizer to hand-tune the export options or upload manually. Great when you want LingCode's preflight + auto-bump but Xcode's familiar upload dialog.

Either way, you still need Xcode installed — LingCode shells out to xcodebuild. The choice is who drives the upload step.

Not sure which to pick? For most web apps, start with Vercel or Netlify — zero infra, works in minutes. For mobile, the App Store guide covers both iOS and macOS. For full control over your server, follow the provisioning tutorial, then use the scripts cookbook. You can also mix — LingCode lets you configure multiple deploy targets per project and run whichever you need.

One place for every credential. LingCode now centralizes API keys, tokens, and passwords in Settings (⌘,) → Credentials. Your AWS access key, Vercel token, App Store Connect .p8, GitHub PAT, DigitalOcean token, Cloudflare token, deploy-server SSH passwords — all stored in the macOS Keychain (service LingCode) and shared across every feature that needs them. Each provider supports multiple profiles — save "Personal AWS" and "Work AWS" side by side, switch active with one click in the Profile: ▾ chip on the provider row. The active profile's values mirror to legacy keys so existing features (Magic Deploy, Magic Submit, saved deploy servers) keep working unchanged; switching profiles seamlessly swaps which credential set those features see. Configure once; reuse forever.

Each provider also has a Test connection button that hits a cheap GET endpoint (e.g. /v2/user on Vercel, /v4/user/tokens/verify on Cloudflare) so you know your saved token is alive before you ever rely on it during a deploy. Need to store something the panel doesn't have a card for? Use Add custom secret at the bottom of the Custom / SSH category — name it once (e.g. stripe_test_key), paste the value, then read it from anywhere with CredentialStore.shared.customSecretValue(name:). Existing single-slot configurations auto-migrate to a "Default" profile on first launch — no re-entry, nothing to lose.

Username + password platforms too. The catalog isn't just API tokens — it covers any combination of fields. Built-in cards for Docker Hub, GitHub Container Registry, npm Registry, MySQL, Redis, and SMTP (Postmark / SendGrid / Mailgun / Gmail) save host, user, password, and API tokens together — switch between "personal" and "work" SMTP, or "local-dev" and "prod" MySQL, with one click in the profile picker. Inline pickers in Magic Deploy's Vercel / AWS S3 / App Store sheets let you switch the active credential set without leaving the deploy form: pick "Work AWS" from the chip at the top, the form refreshes, hit Deploy.

Learn the concepts

Deploy fundamentals. You don't need to read any of these to ship — but they'll save you hours of debugging when something does break.

What to fill in App Store Connect

Field-by-field walkthrough of every form Apple makes you fill out around the binary upload — App Information, Pricing, Privacy, Age Rating, version metadata, screenshot specs, App Review notes. Character limits and submit-blockers for each.

Read →

How App Store code signing works

The trust chain from Apple's root CA down to the signature on your .ipa. Why there are four layers, what each one proves, and how xcodebuild ties them together.

Read →

JWT auth in 5 minutes

What a JSON Web Token is physically, why deploy tools use it everywhere, and how Apple and Google use it differently.

Read →

Why versionCode breaks your second deploy

The #1 most-Googled deploy error. What build numbers actually do for the stores, and two strategies that make you stop tripping over them.

Read →

What a service account really is

Google's identity for machines. Why it's strictly better than an API key, and what minimum privilege looks like for a deploy service account.

Read →

Annotated file examples

Side-by-side views of the three files LingCode hands to Apple and Google — the .p8, the service-account JSON, and ExportOptions.plist — with every field explained.

Open →

Glossary

Every term from the deploy guides in plain English. AAB, .ipa, provisioning profile, service account, JWT, App Sandbox, versionCode, and 20+ more.

Open →

Deploy FAQ

The real questions devs actually ask — Apple Developer fees, TestFlight processing times, lost keystores, rollbacks, CI integration, what happens when a deploy fails mid-way, and more.

Open →

Before you deploy — build the app first

Setting up LingCode and your dev stack.