Announcement: Xcode16 Deprecation in Semaphore

    MacOS Xcode16 reached the end of its supported lifecycle on Semaphore. To ensure the security, reliability, and maintainability of our platform, we are announcing the deprecation and end of life of MacOS Xcode16 build environments.

    Semaphore users should switch to Xcode26.

    Why We’re Deprecating Xcode16

    As operating systems age, they cease to receive timely security updates and ecosystem support. Continuing to run CI workloads on deprecated operating systems increases operational risk and limits our ability to ship improvements.

    Deprecation Timeline

    We will gradually phase out Xcode16 using a series of brownout periods. During these windows, jobs configured to run on Xcode16 will temporarily fail to start. This is intentional and designed to help you detect remaining usage before final removal.

    First Brownout Period

    September 7 – 13, 2026 Jobs running on macos-xcode16 will not start for 15 minutes during the following times:

    • UTC 10:00 – 10:15
    • UTC 13:00 – 13:15
    • UTC 16:00 – 16:15
    • UTC 19:00 – 19:15
    • UTC 22:00 – 22:15

    Second Brownout Period

    September 14 – 20, 2026 Jobs running on macos-xcode16 will not start for 30 minutes during the following times:

    • UTC 10:00 – 10:30
    • UTC 13:00 – 13:30
    • UTC 16:00 – 16:30
    • UTC 19:00 – 19:30
    • UTC 22:00 – 22:30

    Third Brownout Period

    September 21 – 27, 2026 Jobs running on macos-xcode16 will not start for 60 minutes during the following times:

    • UTC 10:00 – 11:00
    • UTC 13:00 – 14:00
    • UTC 16:00 – 17:00
    • UTC 19:00 – 20:00
    • UTC 22:00 – 23:00

    Fourth Brownout Period

    September 28 – October 4, 2026 Jobs running on macos-xcode16 will not start for 2 hours during the following times:

    • UTC 10:00 – 12:00
    • UTC 13:00 – 15:00
    • UTC 16:00 – 18:00
    • UTC 19:00 – 21:00
    • UTC 22:00 – 24:00

    End of Life

    Starting October 5th, 2026, Xcode16 build environments will reach end of life on Semaphore and will no longer be available.

    At this point:

    • Jobs configured to run on macos-xcode16 will no longer start;
    • The macos-xcode16 image will be fully removed from the platform.

    What You Need to Do

    To avoid any disruption, update your pipelines to use a supported Xcode version as soon as possible.

    1. Identify Usage: check your Semaphore configuration files for references to Xcode16 (for example, macos-xcode16), including all YAML files and init-jobs.
    2. Migrate to a Supported Xcode Version: you must migrate to macos-xcode26 to ensure you are using the latest version available.
    3. Validate Your Pipelines: run your pipelines after upgrading to ensure all dependencies and scripts work correctly on the new environment.

    Need Help?

    If you have questions or run into issues while migrating, please reach out to Semaphore support or consult our documentation. We strongly encourage completing your migration before the first brownout period begins in September 2026.

    Thank you for helping us keep Semaphore secure, stable, and up to date.

    Want to discuss this article? Join our Discord.

    Pete Miloravac
    Writen by:
    Pete Miloravac is a software engineer and educator at Semaphore. He writes about CI/CD best practices, test automation, reproducible builds, and practical ways to help teams ship software faster and more reliably.
    Star us on GitHub