macOS용 iOS Simulator 툴킷을 만들었습니다 — 여기서 그 기능을 소개합니다
Source: Dev.to
iOS 앱을 개발한다면, 매일 Xcode 시뮬레이터에서 몇 시간을 보내게 됩니다. 그리고 매일 같은 불편함에 직면합니다:
- WebSocket 메시지를 확인해야 하나요? 이를 위한 내장 인스펙터가 없습니다.
- API 응답을 확인해야 하나요? SSL 인증서를 사용해 Charles Proxy를 설정해야 합니다.
- 디바이스 프레임이 포함된 스크린샷이 필요하신가요? 다른 도구로 전환해야 합니다.
- 푸시 알림을 테스트해야 하나요? 터미널을 열고 JSON을 작성한 뒤
simctl push를 사용합니다. - 느린 네트워크 환경에서 테스트가 필요하신가요? 시뮬레이터에서는 기본적으로 지원되지 않습니다.
- 접근성을 검증해야 하나요? 시뮬레이터의 Settings 앱에서 설정을 하나씩 토글해야 합니다.
저는 이러한 모든 문제를 한 macOS 앱에서 해결하기 위해 SimKit을 만들었습니다.
Mac App Store에서 SimKit을 다운로드하세요: Mac App Store.

SimKit이란?
SimKit은 iOS 시뮬레이터와 함께 실행되는 macOS 애플리케이션으로, Xcode가 제공하지 않는 전문 도구들을 추가합니다. 핵심 기능은 무료이며, 고급 도구를 위한 Pro 티어가 있는 프리미엄 모델이며, 100 % Swift와 SwiftUI로 구축되었고 서드‑파티 의존성이 전혀 없습니다.
GitHub:
Source: …
한눈에 보는 기능
화면 녹화 및 스크린샷
- 시뮬레이터를 디바이스 베젤과 터치 인디케이터가 보이도록 녹화합니다. MP4 또는 GIF 형식으로 내보낼 수 있습니다.
- 커스텀 상태 표시줄과 디바이스 프레임이 포함된 스크린샷을 찍어 App Store 마케팅 자료나 풀‑리퀘스트 문서에 바로 사용할 수 있습니다.
네트워크 디버깅 (Zero Config)
iOS 앱에 한 줄만 추가하세요:
import SimKitSDK
SimKitSDK.shared.enable()
그러면 다음을 바로 사용할 수 있습니다:
- WebSocket 검사 – 프레임, 메시지, 연결 수명 주기를 실시간으로 모니터링합니다.
- 실시간 HTTP 트래픽 모니터링 – 모든 요청, 응답, 헤더, 바디를 확인합니다.
- 네트워크 스로틀링 – Wi‑Fi, LTE, 4G, 3G, 2G/Edge, 사용자 정의 속도 또는 오프라인 모드를 시뮬레이션합니다.
- 모크 엔드포인트 – 모크 서버 없이도 URL 패턴에 맞는 커스텀 JSON을 반환합니다.
- 내보내기 – Chrome DevTools용 HAR 포맷 또는 터미널 재생용 cURL을 제공합니다.
프록시 설정, 인증서, Charles Proxy 라이선스가 필요 없습니다. 내부적으로 URLProtocol 가로채기를 사용합니다.
푸시 알림 테스트
simctl push 터미널 워크플로를 대체하는 시각적 푸시 알림 테스터:
- 구문 강조가 적용된 JSON 편집기.
- 내장 템플릿 (메시지, 알림, 배지, 사일런트 푸시, 리치 알림).
- 배지 번호 제어.
- 페이로드 히스토리 – 이전 알림을 재사용할 수 있습니다.
- 실행 중인 모든 시뮬레이터에 원클릭 전송.
딥 링크 테스트
시각적 인터페이스로 URL 스킴과 유니버설 링크를 테스트합니다. 자주 사용하는 경로를 링크 템플릿으로 저장할 수 있습니다. 이제 xcrun simctl openurl booted … 를 입력할 필요가 없습니다.
위치 시뮬레이션
- 8개의 사전 설정 도시 위치.
- 커스텀 GPS 좌표 입력.
- GPX 경로 파일 재생 – 내비게이션, 피트니스, 라이드‑쉐어링 앱 테스트를 위해 경로를 따라 이동을 시뮬레이션합니다.
접근성 테스트 — 한 패널에 11가지 설정
다음 옵션을 자유롭게 조합하여 토글할 수 있습니다:
- 다이내믹 타입 (7가지 크기: XS ~ XXXL)
- 다크/라이트 모드
- 모션 감소
- 투명도 감소
- 굵은 텍스트
- 버튼 형태
- 그레이스케일
- 색상 반전
- 대비 증가
- 라벨 켜기/끄기
- 색상 없이 구분하기
시뮬레이터 설정 앱을 뒤져볼 필요 없이 앱의 접근성 지원을 바로 검증할 수 있습니다.
개발자 유틸리티
- UserDefaults 편집기 – 코드 변경 없이 앱의
UserDefaults를 조회하고 수정합니다. - 앱 컨테이너 브라우저 – 앱 샌드박스 디렉터리를 탐색합니다.
- 권한 관리자 – 카메라, 사진, 위치 등 권한을 부여하거나 회수합니다.
- 생체 인증 시뮬레이션 – Face ID / Touch ID 매치 또는 실패 이벤트를 트리거합니다.
시작하기
SimKit을 Mac App Store에서 다운로드하거나 웹사이트를 방문하세요.
네트워크 기능을 사용하려면 Swift Package Manager를 통해 SimKit SDK를 iOS 프로젝트에 추가하세요:
import SimKitSDK
@main
struct MyApp: App {
init() {
SimKitSDK.shared.enable()
}
var body: some Scene {
WindowGroup { ContentView() }
}
}
피드백 및 지원
- 버그 보고:
- 기능 요청: 아이디어와 함께 이슈를 열어 주세요.
- 레포지토리 별표: SimKit이 도움이 된다면 별표를 눌러 주세요.
- GitHub:
다음에 보고 싶은 기능은 무엇인가요? 댓글로 알려 주세요.