Guides7 min read

Apple's Xcode 26 requirement for Capacitor apps

Apple now requires builds from a recent Xcode and SDK. What the Xcode 26 requirement means for Capacitor apps, what breaks in older setups, and how to update your local and CI builds.

Apple periodically raises the minimum Xcode and SDK version it will accept for App Store submissions, and the Xcode 26 requirement is the latest bar. If your Capacitor app's CI is still building on an older Xcode, you'll hit a rejection at upload time — not build time, which makes it easy to miss until you're trying to ship. This guide covers what changes and how to update cleanly.

This is a native toolchain requirement. It affects the binary you submit, not the web layer. Once your builds are on the required Xcode, OtaKit keeps shipping web-layer updates over the air regardless of Xcode version.

What the requirement actually means

Apple requires new submissions to be built with a recent Xcode and linked against a recent iOS SDK. Miss it and App Store Connect rejects the upload with an SDK-version error. It doesn't change your Capacitor code — it changes the compiler and SDK you build with.

Update your local machine

Install the required Xcode from Apple, select it as active, and rebuild:

  • Install Xcode 26 (or newer) from the App Store or Apple Developer downloads.
  • Point the command line tools at it with xcode-select.
  • Open your ios/ project and confirm it builds against the new SDK.

Update your CI — the part people forget

The rejection usually surprises teams whose CI is pinned to an old macOS image with an old Xcode. Bump the runner image and the selected Xcode version in your workflow. Most CI providers expose a recent Xcode on their newest macOS images — select it explicitly rather than relying on the default. See building and signing iOS in GitHub Actions for where this fits.

Bump deployment targets if needed

A newer Xcode may drop support for very old iOS deployment targets. If your minimum iOS version is ancient, raise it to something the new toolchain supports — and check your plugins are happy with the new floor. See fixing version mismatch.

Keep a note of Apple's current Xcode/SDK requirement in your release runbook. These bars move on Apple's schedule, and the failure always lands at the worst time — when you're trying to ship.

Where to go next

See CI automation for keeping the toolchain current, and building iOS from Windows if you don't run a local Mac at all.

Related docs