# Building Mac and iOS Apps Without Opening Xcode

A guide to app development using only command line tools, bypassing Xcode's interface.

- **Source:** [Hacker News (news.ycombinator.com)](https://brifing.si/source/13c923cd-6d99-442b-9b8b-1181f4d8cd91)
- **Published:** 2026-07-13
- **Topic:** [Software & Engineering](https://brifing.si/c/engineering)
- **Original article:** <https://scottwillsey.com/building-and-shipping-mac-and-ios-apps-without-ever-opening-xcode/>
- **On Brifing:** https://brifing.si/s/e5bd7bd8-656c-4b37-8be1-da280c60ff3b

## Is Xcode-Free Development Possible?

Many developers complain about Xcode's complex interface. However, with Xcode installed, it's possible to develop apps entirely via command line tools without ever opening Xcode's GUI. This approach is ideal for automation-focused developers.

## Basic Requirements

Xcode.app must be installed as build tools come with this package. Tools like xcodebuild, notarytool, stapler and devicectl can be run directly from terminal. Only a few one-time GUI operations are required.

## Command Line Setup

Ensure your active development environment is set to Xcode using xcode-select command. The standalone CommandLineTools package isn't sufficient as iOS SDK and other necessary tools only come with Xcode.app.

## Project Management with XcodeGen

Use XcodeGen to manage Xcode projects automatically. This tool keeps your project settings in YAML format and regenerates the .xcodeproj file on each build. This means you only need to track the YAML file in git.

## One-Time Xcode Configurations

Accept Xcode license and install additional components. Add your Apple Developer account to Xcode and create a Developer ID Application certificate. This certificate will be used to sign your apps.

## Key Management

The generated Developer ID certificate and private key are stored in your login keychain. This private key is crucial for signing and cannot be re-downloaded, so make sure to back it up.

## Notarization Process

Before distributing your app, it needs to pass Apple's malware scan. Store your credentials once using notarytool. You'll need to use an app-specific password for this step.

## Automated Build Script

A single release.sh script can automate the entire process: archive → sign → notarize → staple → install to /Applications. Don't store any secrets in the script - keep everything secure in keychain.

## Additional Steps for iOS

iOS apps may require additional steps like provisioning profile management. Tools like devicectl help manage these processes from command line. You can get assistance from LLM tools for these tasks.

## Continuous Integration

This method is ideal for CI/CD pipelines. You can build and distribute without Xcode on services like GitHub Actions. Just ensure necessary certificates and profiles are available in the environment.

## Pros and Cons

Avoiding Xcode's interface may boost productivity, especially for repetitive tasks. However, you might lose access to some debugging features. This method works best for final builds and distribution.

## Future Outlook

Apple is expected to make developer tools more command-line friendly. Adopting this method now prepares you for future changes. Xcode-free development aligns perfectly with modern software engineering practices.

## Sources covering this story

- https://scottwillsey.com/building-and-shipping-mac-and-ios-apps-without-ever-opening-xcode/ — 

---

_Summary written by Brifing from the original reporting. Copyright in the original article belongs to its publisher; read the full piece at the link above._
