Xcode를 열지 않고 Mac 및 iOS 앱 배포하기
요약
Xcode GUI 없이 CLI 도구와 CI/CD 파이프라인을 활용하여 Mac 및 iOS 앱을 빌드, 테스트, 배포하는 방법을 안내합니다. xcodebuild, Swift Package Manager, Fastlane 등을 사용하여 터미널 중심의 효율적인 개발 워크플로우를 구축하는 법을 다룹니다.
핵심 포인트
- xcodebuild를 활용한 스크립트 기반의 빌드 및 테스트 자동화
- Xcode IDE 대신 VS Code, Neovim 등 선호하는 에디터 사용 가능
- CI/CD 파이프라인 최적화를 위한 헤드리스 빌드 환경 구축
- Xcode 툴체인(컴파일러, SDK)과 IDE의 명확한 구분 이해
Xcode를 열지 않고 Mac 및 iOS 앱 배포하기
메타 설명: 개발자들이 최신 CLI 도구, CI/CD 파이프라인, 대안 IDE를 사용하여 Xcode를 열지 않고 Mac 및 iOS 앱을 구축하고 배포하는 방법을 알아봅니다. 2026년 7월 업데이트됨.
요약: Apple 플랫폼 앱을 빌드, 테스트, 배포하기 위해 Xcode의 GUI가 필요하지 않습니다.
xcodebuild, Swift Package Manager, Fastlane 및 최신 CI/CD 파이프라인을 사용하면 터미널이나 선호하는 에디터에서 전적으로 개발할 수 있으며 — 경우에 따라 크로스 플랫폼 프레임워크를 사용하여 Xcode 툴체인 자체를 거의 건너뛸 수도 있습니다. 이 가이드에서는 이를 가능하게 하는 실용적인 도구와 워크플로우를 다룹니다.
개발자들이 Xcode GUI를 포기하는 이유
솔직히 말해서: Xcode는 유능한 IDE이지만, 30GB가 넘는 거대함에 암호 같은 오류, 느린 인덱싱, 그리고 때때로 정상 작동을 위해 전체 재시작이 필요한 시뮬레이터의 역사를 가지고 있습니다. VS Code, Neovim 또는 JetBrains 도구에서 생활하는 개발자에게 Xcode를 열어 빌드를 트리거하는 것은 생산성 세금처럼 느껴집니다.
Xcode를 열지 않고 Mac 및 iOS 앱을 구축하고 배포하는 것은 단순한 트릭이 아니라 다음을 가능하게 하는 합법적인 워크플로우 선택입니다:
- 헤드리스(headless) 빌드 서버에서의 더 빠른 CI/CD 파이프라인
- 에디터 자유도 — 가장 생산적인 IDE를 사용하세요
- GUI 상태에 의존하지 않는 스크립트 가능하고 반복 가능한 빌드
- macOS, Linux 및 심지어 Windows 환경 전반의 더 나은 팀 일관성
- 터미널 우선 워크플로우를 선호하는 개발자를 위한 인지 부하 감소
좋은 소식은 Apple이 명령줄 도구에 막대한 투자를 했고, 서드파티 생태계가 나머지 대부분의 격차를 메웠다는 것입니다.
Xcode 툴체인과 Xcode IDE 이해하기
이 구분은 엄청나게 중요합니다. 대부분의 사람들이
clang/swiftc— Apple의 컴파일러 (compilers)xcodebuild— 커맨드 라인 빌드 시스템 (command-line build system)simctl— 시뮬레이터 제어 (Simulator control)codesign,altool,notarytool— 서명 (signing) 및 공증 (notarization)- iOS/macOS SDK 자체
Xcode IDE는 프로젝트 네비게이터 (project navigator), 인터페이스 빌더 (Interface Builder), 그리고 시각적 스킴 에디터 (visual scheme editor)를 갖춘 GUI 애플리케이션 (Xcode.app)입니다.
여러분에게는 툴체인 (toolchain)이 필요합니다. 반드시 IDE가 필요한 것은 아닙니다.
가벼운 설정을 위해 Command Line Tools만 설치하세요:
xcode-select --install
또는 앱을 실행하지 않고 전체 툴체인을 다운로드하세요:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
[INTERNAL_LINK: Xcode Command Line Tools 설정 가이드]
핵심 스택: 터미널에서 iOS 앱 빌드하기
xcodebuild: 주요 빌드 도구
xcodebuild는 Xcode 프로젝트를 빌드, 테스트 및 아카이브 (archiving)하기 위한 Apple의 공식 CLI입니다. 이는 강력하고 스크립트 작성이 가능하며, Apple 앱을 출시하는 모든 CI 파이프라인 (CI pipeline)의 기반이 됩니다.
기본 빌드 명령:
xcodebuild \
-project MyApp.xcodeproj \
-scheme MyApp \
...
시뮬레이터에서 테스트 실행:
xcodebuild test \
-project MyApp.xcodeproj \
-scheme MyApp \
...
배포를 위한 아카이브:
xcodebuild archive \
-project MyApp.xcodeproj \
-scheme MyApp \
...
학습 곡선이 실제로 존재합니다. xcodebuild의 출력은 매우 상세하며(verbose), 에러 메시지는 난해할 수 있습니다. xcbeautify나 xcpretty와 같은 도구들은 출력을 사람이 읽기 쉬운 형태로 변환해 줍니다.
Swift Package Manager: Xcode 없이 사용 가능한 빌드 시스템
순수 Swift 프로젝트 및 프레임워크의 경우, Swift Package Manager (SPM)가 .xcodeproj 파일 없이도 독립적인 빌드 시스템으로서 점점 더 실행 가능한 대안이 되고 있습니다.
# Swift 패키지 빌드
swift build
...
SPM은 Linux에서 네이티브로 작동하므로, 교차 컴파일 (cross-compilation) 시나리오를 열어주며, 순수 로직 테스트를 위해 CI 러너 (CI runners)가 반드시 macOS를 필요로 하지 않아도 된다는 것을 의미합니다.
SPM의 한계: 실제 기기 배포를 위한 .ipa 또는 .app 번들을 빌드하려면 여전히 Apple의 SDK와 코드 서명 (code signing) 인프라가 필요합니다. SPM은 라이브러리와 서버 사이드 Swift (server-side Swift)에는 탁월하지만, App Store를 타겟으로 하는 전체 앱 빌드를 위해서는 파이프라인 내에서 여전히 xcodebuild가 필요합니다.
Fastlane을 이용한 전체 배포 파이프라인 자동화
xcodebuild가 엔진이라면, Fastlane은 대시보드입니다. Fastlane은 iOS 및 Mac 앱 배포를 위해 가장 널리 채택되는 자동화 도구이며, Xcode 없이 터미널 워크플로를 수행하도록 명시적으로 설계되었습니다.
Fastlane이 처리하는 작업:
- 다양한 기기 크기에 대한 스크린샷 (Screenshots)
- TestFlight를 통한 베타 배포 (Beta distribution)
- App Store 제출 (App Store submission)
match를 이용한 코드 서명 (Code signing)- 변경 로그 (Changelog) 관리
- Slack/webhook 알림
TestFlight 배포를 위한 최소한의 Fastfile 예시는 다음과 같습니다:
lane :beta do
increment_build_number
build_app(scheme: "MyApp")
...
다음 명령어로 실행합니다:
bundle exec fastlane beta
솔직한 평가: Fastlane은 강력하지만 유지 관리 오버헤드가 있습니다. Ruby 의존성 스택으로 인해 버전 충돌이 발생할 수 있으며, 일부 액션 (actions)은 Apple API 변경보다 뒤처지기도 합니다. 그럼에도 불구하고, 2026년 7월 기준으로 Fastlane은 가장 방대한 커뮤니티를 보유한, 가장 검증된 옵션으로 남아 있습니다. 코드 서명 관리를 위한 match 액션 하나만으로도 팀 단위에서는 설정 비용을 들일 가치가 충분합니다.
[INTERNAL_LINK: iOS 팀을 위한 Fastlane 설정]
Swift 및 SwiftUI 개발을 위한 대안 에디터
Swift 확장이 설치된 VS Code
Swift Server Workgroup에서 관리하는 공식 Swift 확장 (Swift extension)이 포함된 Microsoft의 VS Code는 상당히 성숙했습니다. 2026년 기준으로 다음과 같은 기능을 제공합니다:
- 전체 SourceKit-LSP 통합 (자동 완성, 정의로 이동, 인라인 에러)
- LLDB를 통한 통합 디버깅
- Swift Package Manager 지원
- 테스트 러너 (Test runner) 통합
최적의 용도: Server-side Swift, Swift 패키지, 가벼운 에디터를 원하는 개발자
제한 사항: SwiftUI 캔버스 프리뷰(Canvas preview) 불가, 시뮬레이터(Simulator) 통합 불가, 스토리보드(Storyboard)/XIB 편집 불가
Nova by Panic
Nova는 Panic(Transmit 및 Coda의 제작사)에서 만든 macOS 네이티브 에디터로, 뛰어난 Swift 지원을 제공합니다. VS Code보다 더 "Mac다운" 느낌을 주며, 확장 프로그램 생태계가 성장하고 있습니다.
최적의 용도: 우수한 Swift 지원과 세련된 네이티브 Mac 에디터를 원하는 개발자
제한 사항: macOS 전용, VS Code보다 작은 확장 프로그램 생태계
JetBrains Fleet
JetBrains Fleet은 Swift 지원을 추가했으며, 특히 이미 JetBrains 생태계를 사용 중인 팀에게 주목할 만한 가치가 있습니다. Apple 플랫폼 개발을 위한 기능은 아직 성숙해가는 단계이지만 유망한 모습을 보여줍니다.
AppCode 상태 (2026년 업데이트)
JetBrains는 2023년 12월에 AppCode 지원을 공식적으로 중단했습니다. 만약 AppCode의 복귀를 기다리고 있었다면, 이제는 다른 대안을 찾아야 할 때입니다. Swift 확장 프로그램을 사용하는 VS Code가 Xcode 없이 개발하기 위한 가장 가까운 정신적 계승자입니다.
CI/CD 플랫폼: 로컬 Mac 없이 배포하기
| 플랫폼 | macOS 러너 (Runners) | 무료 티어 (Free Tier) | Apple Silicon | 최적의 용도 |
|---|---|---|---|---|
| GitHub Actions | ✅ | 제한된 시간 | ✅ (M-series) | 오픈 소스 / 소규모 팀 |
| ... |
Xcode Cloud: Apple의 자체 CI 솔루션
Xcode Cloud는 특별히 언급할 가치가 있습니다. 이름에도 불구하고, Xcode가 아닌 App Store Connect를 통해 구성하며, 완전히 Apple의 인프라에서 실행됩니다. 워크플로(Workflows)는 YAML과 유사한 형식으로 정의되며 Git 이벤트에 의해 트리거됩니다.
솔직한 평가: 이미 Apple Developer 계정 비용을 지불하고 있다면, Xcode Cloud는 마찰이 가장 적은 옵션입니다. 월 25시간의 무료 컴퓨팅 시간은 대부분의 인디 개발자를 커버합니다. 주요 제한 사항은 Apple 전용이라는 점입니다. Android나 서버 사이드 빌드는 지원하지 않습니다.
GitHub Actions 예시
iOS 앱을 빌드하고 테스트하기 위한 최소한의 GitHub Actions 워크플로(workflow):
name: iOS CI
on: [push, pull_request]
...
GUI 없는 코드 서명 (Code Signing)
코드 서명(Code Signing)은 Xcode 없는 워크플로를 시도하는 대부분의 개발자가 어려움을 겪는 단계입니다. 여기 세 가지 주요 접근 방식이 있습니다:
1. Fastlane Match (팀 단위 권장)
Fastlane Match는 암호화된 인증서(certificates)와 프로비저닝 프로파일(provisioning profiles)을 Git 리포지토리(repo) 또는 클라우드 스토리지에 저장한 다음, 빌드가 필요한 모든 머신으로 동기화합니다. 팀 환경을 위한 가장 깔끔한 솔루션입니다.
2. 수동 인증서 관리 (Manual Certificate Management)
1인 개발자의 경우, 다음을 통해 인증서를 완전히 관리할 수 있습니다:
- 키체인(keychain) 관리를 위한
securityCLI - macOS 공증(notarization)을 위한 Apple의
notarytool - 바이너리(binaries) 서명을 위한
codesign
3. App Store Connect API
Apple의 App Store Connect API는 이제 TestFlight 빌드 관리, 크래시 리포트(crash reports) 검토, 앱 심사 제출 처리 등 기존에 Xcode Organizer GUI가 필요했던 대부분의 작업을 지원하며, 이 모든 것은 REST API 또는 Spaceship (Fastlane의 일부)과 같은 도구를 통해 스크립트로 실행할 수 있습니다.
[INTERNAL_LINK: iOS code signing explained]
크로스 플랫폼 프레임워크: Xcode 툴체인(Toolchain)을 완전히 피하기
일부 사용 사례의 경우, Xcode 툴체인을 거의 완전히 우회할 수 있습니다:
React Native
React Native는 Metro 번들러(bundler)와 JavaScript/TypeScript를 사용합니다. 디바이스 빌드를 위해 여전히 iOS SDK가 필요하지만, 개발 루프(development loop)는 Node.js에서 실행되며 빌드는 npx react-native run-ios 또는 Fastlane을 통해 자동화할 수 있습니다.
Flutter
Flutter는 뛰어난 CLI 툴링(tooling)을 갖추고 있습니다. flutter build ipa가 전체 빌드 파이프라인(pipeline)을 처리하며, Codemagic은 Flutter CI/CD를 위해 특별히 구축되었습니다. Swift가 아닌 Dart를 작성합니다.
.NET MAUI
Microsoft의 .NET MAUI를 사용하면 dotnet build를 통해 C#으로 iOS 및 Mac 앱을 빌드할 수 있습니다. 팀이 이미 .NET 생태계에 있다면, 이는 진정으로 실행 가능한 경로입니다.
솔직한 평가: 크로스 플랫폼 (Cross-platform) 프레임워크는 성능, 네이티브 느낌(native feel), 그리고 최신 Apple API 접근성 측면에서 실제적인 트레이드오프 (trade-offs)를 수반합니다. 특정 앱 카테고리(유틸리티, 콘텐츠 앱, 내부 도구)에는 매우 훌륭하지만, 그래픽 집약적이거나 플랫폼에 깊게 통합된 앱에는 어려움을 겪을 수 있습니다.
핵심 요약 (Key Takeaways)
- Xcode IDE가 아닌 Xcode 툴체인 (toolchain)이 필요합니다. Command Line Tools를 설치하고
xcodebuild를 직접 사용하세요. - Fastlane은 전체 빌드-테스트-서명-제출 파이프라인을 위한 최고의 자동화 레이어 (automation layer)입니다.
- Swift 확장 기능이 포함된 VS Code는 2026년 일상적인 개발을 위한 가장 실용적인 Xcode 대안입니다.
- Xcode Cloud는 매월 25시간의 무료 컴퓨팅 시간을 제공합니다 — 대부분의 인디 개발자가 로컬 빌드 머신 없이 앱을 출시하기에 충분한 양입니다.
- 코드 서명 (Code signing)은 해결 가능합니다. Fastlane Match 또는 수동 인증서 관리를 통해 해결할 수 있으며, 이는 차단 요소가 아닙니다.
- 크로스 플랫폼 프레임워크 (Flutter, React Native)는 실제적인 트레이드오프를 감수하면서 Xcode 의존성을 더욱 줄일 수 있습니다.
- GitHub Actions 또는 Bitrise를 사용하는 CI/CD 파이프라인을 통해 개발자가 Xcode의 GUI를 전혀 만지지 않고도 앱을 빌드하고 출시할 수 있습니다.
오늘 바로 Xcode 없는 워크플로우를 시작하세요
Xcode를 열지 않고 Mac 및 iOS 앱을 빌드하고 출시하는 경로는 2026년에 이미 잘 닦여 있습니다. 작게 시작하세요. 수동 빌드를 대체할 xcodebuild 명령 하나를 구성하고, TestFlight 업로드를 위해 Fastlane을 추가하며, 작업 흐름(flow)을 유지할 수 있는 에디터를 선택하세요.
즉각적인 실행 계획:
- Fastlane 설치:
gem install fastlane - 프로젝트 디렉토리에서
fastlane init실행 - TestFlight을 가리키는
beta레인 (lane) 설정 - 이를 GitHub Actions 워크플로우에 연결
이 방식으로 빌드를 한 번이라도 출시하고 나면, 다시는 이전 방식으로 돌아가지 않을 것입니다.
파이프라인에서 자동화하려는 특정 단계가 있나요? 댓글로 질문을 남겨주세요. 저희는 모든 질문을 읽고 있습니다.
자주 묻는 질문 (FAQ)
Q: Mac 없이 Linux나 Windows에서 iOS 앱을 빌드할 수 있나요?
A: App Store 배포를 위해서는 여전히 Apple의 SDK가 필요하며, 이는 공식적으로 macOS를 요구합니다. 하지만 Linux에서 Swift 패키지를 컴파일하고 테스트할 수는 있습니다. 만약 Mac을 소유하고 있지 않다면, MacStadium과 같은 서비스를 통해 CI 파이프라인을 위한 클라우드 호스팅 Mac 하드웨어를 제공받을 수 있습니다.
Q: Apple은 Xcode 없이 App Store 제출을 허용하나요?
A: 네. Apple의 App Store Connect API와 altool/notarytool 같은 도구들은 완전히 자동화된 제출을 지원합니다. Fastlane의 deliver 및 upload_to_app_store 액션들은 내부적으로 이러한 API들을 사용합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기