---
title: Announcing the macOS Golden Gate Build Stack
description: The macos-golden-gate build stack with macOS 27 and Xcode 27 is live and becomes the default on October 1. See what changed and how to prepare your app.
date:
  created: 2026-09-24
  updated: 2026-09-24
authors:
  - robingenz
categories:
  - Cloud
---

# Announcing the macOS Golden Gate Build Stack

As some of you have already noticed, Capawesome Cloud has supported Xcode 27 for a while. The `macos-tahoe` build stack ships it next to Xcode 26.5, and you can select it via `XCODE_VERSION`. Today we're releasing the matching build stack, `macos-golden-gate`, which runs macOS 27 with Xcode 27. On October 1, 2026, it becomes the default for all iOS and Android builds, whether your app is built with Capacitor, Cordova, or as a native project. Every build stack also supports Android 37 now.

<!-- more -->

<div class="capawesome-z29o10a">
  <a href="https://capawesome.io/" target="_blank">
    <img alt="Build and deploy your Capacitor app with Capawesome Cloud" src="https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1" />
  </a>
</div>

## What changed

The new stack ships Xcode 27.0 as its only Xcode version and drops Node.js 20 in favor of Node.js 22, 24 (default), and 26. Most other tools were updated as well, including CocoaPods 1.17.0, Fastlane 2.240.1, and the Capacitor CLI 8.5.2. The [build stacks documentation](../../cloud/native-builds/build-stacks.md) lists the full configuration.

If you pin `NODE_VERSION=20` or an Xcode 26 release via `XCODE_VERSION`, either select `macos-tahoe` for those builds before October 1 or update the [reserved variables](../../cloud/native-builds/environment-variables.md#reserved-variables).

## Android 37

Android Platforms 37 and Build Tools 37.0.0 are now available on all build stacks, including `macos-sequoia` and `macos-tahoe`. This lets you target Android 17 (API level 37), which the upcoming Capacitor 9 requires with `compileSdkVersion` and `targetSdkVersion` set to `37`. See the [Capacitor 9 update guide](https://capacitorjs.com/docs/next/updating/9-0){:target="_blank"} for details.

## UIScene is now required

Xcode 27 ships the iOS 27 SDK, and Apple's [TN3187](https://developer.apple.com/documentation/technotes/tn3187-migrating-to-the-uikit-scene-based-life-cycle){:target="_blank"} states that apps built with it must adopt the UIScene lifecycle, "otherwise, your app won't launch." The build still succeeds, so test an iOS build from the new stack on a device or simulator before October 1. What you need to do depends on your framework:

- **Capacitor**: Update to Capacitor 8.5, which added UIScene support in [ionic-team/capacitor#8536](https://github.com/ionic-team/capacitor/pull/8536){:target="_blank"}, and migrate your iOS project with `npx cap migrate`. The [Updating to 8.5](https://capacitorjs.com/docs/updating/8-5){:target="_blank"} guide covers the manual steps for customized projects.
- **Cordova**: cordova-ios has used the UIScene lifecycle since 8.0.0. Apps on older versions need to upgrade, and outdated plugins can still cause a crash at launch, as seen in [apache/cordova-ios#1725](https://github.com/apache/cordova-ios/issues/1725){:target="_blank"}.
- **Native iOS**: SwiftUI apps are already scene-based. UIKit apps that set up their window in the `AppDelegate` need a scene delegate, as described in TN3187.

## Switching stacks

Until October 1, 2026, `macos-tahoe` stays the default, so nothing changes for your builds unless you select `macos-golden-gate` yourself. We recommend doing that now to test your app on the new stack. After the switch, you can keep the previous build environment by selecting `macos-tahoe` in the same way. Apple still accepts Xcode 26 builds, so App Store submissions from `macos-tahoe` work as before. With this release, `macos-sequoia` is deprecated and will be removed when the next build stack ships.

=== "CLI"

    Pass the `--stack` flag when you create a build or update an automation:

    ```bash
    npx @capawesome/cli apps:builds:create --platform ios --stack macos-golden-gate
    npx @capawesome/cli apps:automations:update --automation-id <AUTOMATION_ID> --stack macos-golden-gate
    ```

=== "Console"

    Select the build stack from the build stack options when you start a build on the [Builds](https://console.cloud.capawesome.io/apps/_/builds){:target="_blank"} page, or in the [build settings](../../cloud/automations/attach-build-settings.md) of an automation.

=== "API"

    Set the `stack` property when you create a build through the [Capawesome Cloud API](../../cloud/api.md):

    ```bash
    curl -X POST https://api.cloud.capawesome.io/v1/apps/$APP_ID/builds \
      -H "Authorization: Bearer $CAPAWESOME_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{ "platform": "ios", "type": "app-store", "gitRef": "main", "stack": "macos-golden-gate" }'
    ```

If a build fails on `macos-golden-gate` and still fails after switching back to `macos-tahoe`, email [support@capawesome.io](mailto:support@capawesome.io) with the build ID or see the [support page](../../support/index.md) for other options.

## Try Capawesome Cloud

Capawesome Cloud builds Capacitor, Cordova, and native iOS and Android apps on managed macOS machines, so a new Xcode release means selecting a build stack instead of upgrading your own Macs.

[Try Capawesome Cloud Free](https://capawesome.io){ .md-button .md-button--primary }

## Final Thoughts

Before October 1, migrate your iOS project to UIScene on a branch and run a build with `--stack macos-golden-gate`. If you need more time, set `macos-tahoe` on your builds and automations now, so the default switch doesn't change your toolchain unexpectedly.

For the previous toolchain update, see [the new CLIs and Xcode 26 in the Capawesome build stacks](./new-clis-and-xcode-26-in-capawesome-build-stacks.md). Questions? Join us on the [Capawesome Discord server](https://discord.gg/VCXxSVjefW){:target="_blank"} or subscribe to the [Capawesome newsletter](https://capawesome.io/newsletter/){:target="_blank"} to stay up to date.
