asc-shots-pipeline은(는) 무엇을 하나요?
iOS 스크린샷 자동화 파이프라인 - xcodebuild/simctl로 시뮬레이터 빌드 및 실행을 조율하고, AXe를 사용하여 UI 동작을 자동화하며, JSON 설정 및 계획 파일을 통해 스크린샷 캡처를 구성합니다. 이후 Koubou 기반의 asc screenshots frame 명령어로 프레이밍을 적용하고, asc screenshots upload 명령어로 업로드합니다. 사용자가 자동 스크린샷 캡처, AXe 기반 시뮬레이터 플로우, 프레임 합성, 또는 스크린샷-업로드 파이프라인을 요청할 때 사용하십시오.
주요 기능
- 빌드 및 실행:
xcodebuild와simctl을 사용하여 iOS 시뮬레이터에서 앱 빌드 및 실행 - UI 자동화: AXe 프레임워크를 통해 UI 상호작용 및 스크린샷 캡처 자동화
- 설정 및 계획: JSON 파일로 시뮬레이터 구성과 캡처할 화면 계획 정의
- 프레이밍: Koubou를 사용한
asc screenshots frame명령어로 디바이스 프레임 적용 - 업로드:
asc screenshots upload명령어로 스크린샷을 지정된 대상에 업로드
사전 조건
- macOS 환경
- Xcode 및 명령줄 도구 설치
xcodebuild및simctl사용 가능- AXe CLI 설치 및 PATH 설정
- Koubou 도구 설치 (
asc명령어 사용 가능) - Node.js (설정 파일 처리 및 업로드 스크립트 실행용)
사용 방법
-
설정 파일 준비
shots-config.json: 시뮬레이터 타입, OS 버전, 앱 경로 등 정의shots-plan.json: 캡처할 화면 목록, 각 화면의 UI 동작 순서 정의
-
파이프라인 실행
# 1단계: 시뮬레이터 빌드 및 실행 xcodebuild -project YourApp.xcodeproj -scheme YourScheme -destination 'platform=iOS Simulator,name=iPhone 15' build xcrun simctl boot "iPhone 15" xcrun simctl install booted path/to/YourApp.app xcrun simctl launch booted com.yourapp.bundle # 2단계: AXe를 사용한 UI 동작 및 스크린샷 캡처 axe run --config shots-config.json --plan shots-plan.json # 3단계: 프레이밍 적용 asc screenshots frame --input ./screenshots --output ./framed-screenshots # 4단계: 스크린샷 업로드 asc screenshots upload --input ./framed-screenshots -
설정 파일 예시 (
shots-config.json){ "simulators": [ { "name": "iPhone 15", "os": "17.0" }, { "name": "iPad Pro (12.9-inch)", "os": "17.0" } ], "appPath": "/path/to/YourApp.app", "bundleId": "com.yourapp.bundle" } -
계획 파일 예시 (
shots-plan.json){ "screens": [ { "name": "홈 화면", "actions": [ { "type": "wait", "duration": 2 }, { "type": "tap", "element": "mainButton" } ] }, { "name": "설정 화면", "actions": [ { "type": "swipe", "direction": "up" } ] } ] }
환경 변수
AXE_API_KEY: AXe API 인증 키ASC_UPLOAD_URL: 업로드 대상 URL (선택 사항)ASC_UPLOAD_TOKEN: 업로드 인증 토큰 (선택 사항)
참고 사항
- 모든 명령어는 macOS 터미널에서 실행되어야 합니다.
- AXe 설정 파일과 계획 파일은 정확한 JSON 형식을 따라야 합니다.
- Koubou 도구 (
asc)는 별도 설치가 필요합니다:npm install -g koubou또는brew install koubou - 스크린샷 캡처 중 시뮬레이터가 응답하지 않으면
simctl shutdown또는simctl erase로 초기화하십시오.
문제 해결
- 빌드 실패: Xcode 버전과 프로젝트 설정을 확인하십시오.
- UI 동작 실패: AXe 설정에서 요소 식별자(
element)가 올바른지 확인하십시오. - 프레이밍 오류: Koubou가 최신 버전인지 확인하고,
asc screenshots frame --help로 옵션을 점검하십시오. - 업로드 실패: 환경 변수
ASC_UPLOAD_URL과ASC_UPLOAD_TOKEN이 올바르게 설정되었는지 확인하십시오.
라이선스
이 스킬은 MIT 라이선스에 따라 배포됩니다. 자세한 내용은 리포지토리의 LICENSE 파일을 참조하십시오.