# xtool - Xcode 없이 iOS 앱을 빌드하고 배포하는 도구

> Clean Markdown view of GeekNews topic #20907. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20907](https://news.hada.io/topic?id=20907)
- GeekNews Markdown: [https://news.hada.io/topic/20907.md](https://news.hada.io/topic/20907.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-05-15T09:41:02+09:00
- Updated: 2025-05-15T09:41:02+09:00
- Original source: [github.com/xtool-org](https://github.com/xtool-org/xtool)
- Points: 21
- Comments: 1

## Summary

**크로스 플랫폼 빌드**와 **SwiftPM 기반 배포 자동화**를 지원하는 새로운 도구로 Xcode 없이도 **SwiftPM 기반 iOS 앱**을 생성, 서명, 설치 및 테스트할 수 있도록 합니다. **CI/CD 환경**에서 효과적으로 작동하며, **Apple Developer Services 연동**과 같은 핵심 기능을 자동화하여 개발 효율성을 높입니다. **SwiftUI**, 표준 매크로, WebAssembly 기반 확장 지원 등 최신 개발 트렌드에 적합한 설계를 채택하였으며, macOS 환경 이외의 한계점과 해결 방안도 구체적으로 제시합니다.

## Topic Body

- 크로스 플랫폼 Xcode 대체 도구로, SwiftPM 기반 프로젝트를 **Linux, Windows(WSL), macOS 어디서든 빌드**하고 디바이스에 .ipa로 배포 가능  
- Xcode가 필요한 작업을 단순화하고 자동화함으로써 **CI/CD 환경**에서 유용(iOS 배포 자동화를 위해 8년동안 작업한 결과물임)  
- iOS 앱 서명 및 설치, **Apple Developer Services 연동** 기능 제공  
  - `XKit`이라는 Swift 라이브러리로, 사용자 앱에서 Apple Developer Services 또는 iOS 디바이스와 직접 상호작용 가능  
- [macOS 외 환경에서의 한계 및 향후 계획](https://forums.swift.org/t/xtool-cross-platform-xcode-replacement-build-ios-apps-on-linux-and-more/79803)  
  * Interface Builder : 구현이 매우 복잡하고 **SwiftUI가 대부분 대체**하고 있음  
  * Asset Catalogs : 역공학이 필요하지만 도입할 가치가 있음. 현재는 이미지 파일을 raw 파일로 추가하는 방식으로 대체 가능  
  * Proprietary Macros   
    * `@Observable` 같은 표준 매크로는 작동함  
    * SwiftData 등 Apple 독점 매크로는 역설계 후 재구성 필요  
    * WebAssembly 매크로 형태로 Apple이 배포하면 모든 플랫폼에서 활용 가능해짐 ([Swift 포럼의 제안 참고](https://forums.swift.org/t/poc-improving-macro-build-times-with-webassembly/70967))  
  * App Extensions  
    * 현재는 "Application" 타입 타겟만 빌드 가능  
    * `xtool.yml` 명세에 확장하여 지원하는 방식으로 해결 가능  
  * LLDB 디버깅  
    * iOS 17 이전에는 간단했으나, Apple이 `debugserver` 호출 방식을 변경함  
    * [pymobiledevice3](https://github.com/doronz88/pymobiledevice3)와 같은 도구를 이용해 연결 가능  
    * 새 RemoteXPC 프로토콜 통합은 향후 과제  
  * App Store Connect 배포  
    * 현재는 **자체 디바이스에서의 실행만 지원**  
    * `iTMSTransporter`는 크로스 플랫폼이며, ASC API 연동 인프라가 이미 준비되어 있어 구현 가능성 있음

## Comments



### Comment 38686

- Author: xguru
- Created: 2025-05-15T09:42:01+09:00
- Points: 1

[애플, Swift Build 오픈 소스화 발표](https://news.hada.io/topic?id=19009) 이거랑은 상관없이 별도로 만든거네요.
