프로젝트 소개

App Store Connect CLI(`asc`)는 iOS, macOS, tvOS, visionOS 플랫폼에서 App Store Connect 워크플로를 자동화하기 위한 빠르고 스크립트 가능한 명령줄 도구입니다. ### 설치 - Homebrew: `brew install asc` - 설치 스크립트: `curl -fsSL https://asccli.sh/install | bash` - WinGet: `winget install Rorkai.ASC --exact` - GitHub 릴리스에서 릴리스 바이너리를 사용할 수 있습니다. 소스 빌드에는 go.mod에 선언된 Go 버전이 필요합니다. ### 인증 API 키는 appstoreconnect.apple.com에서 생성됩니다. 다음으로 인증합니다: ```bash asc auth login --name "MyApp" --key-id "ABC123" --issuer-id "DEF456" --private-key /path/to/AuthKey.p8 --network ``` 개별 API 키는 `--issuer-id`를 생략하고 `--key-type individual`을 사용합니다. CI 또는 헤드리스 환경에서는 `--bypass-keychain`을 전달합니다. `asc auth status --validate` 또는 `asc auth doctor`로 검증합니다. ### 출력 기본값 `asc`는 대화형 터미널에서 `table` 출력을 사용하고 파이프/CI에서 `json`을 사용합니다. `ASC_DEFAULT_OUTPUT`으로 전역적으로 재정의하거나 `--output json --pretty`로 명령별로 재정의합니다. ### 일반적인 워크플로 **TestFlight 및 빌드:** ```bash asc apps list --output table asc builds upload --app "APP_ID" --ipa "/path/to/MyApp.ipa" asc testflight groups list --app "APP_ID" ``` **App Store 제출:** ```bash asc publish appstore --app "APP_ID" --ipa "/path/to/MyApp.ipa" --version "1.2.3" --submit --confirm asc status --app "APP_ID" --watch ``` **검증 및 검토:** ```bash asc validate --app "APP_ID" --version "1.2.3" asc review status --app "APP_ID" asc validate --app "APP_ID" --version "1.2.3" --deep ``` 심층 검증은 대화형 프롬프트 없이 Apple의 로그인 웹 엔드포인트를 통해 App Privacy, 계약 및 구독 첨부 파일을 확인합니다. **메타데이터 및 현지화:** ```bash asc localizations list --app "APP_ID" --type app-info asc metadata apply --app "APP_ID" --version "1.2.3" --dir "./metadata" --dry-run asc metadata keywords audit --app "APP_ID" --version "1.2.3" --blocked-terms-file "./blocked-terms.txt" ``` 키워드 감사는 중복, 앱 이름/부제와의 중복, 바이트 예산 사용량 및 차단된 용어를 보고합니다. **스크린샷 및 미디어:** ```bash asc screenshots plan --app "APP_ID" --version "1.2.3" --review-output-dir "./screenshots/review" asc screenshots apply --app "APP_ID" --version "1.2.3" --review-output-dir "./screenshots/review" --confirm ``` JSONC 계획 파일을 통해 기기, 로케일 및 모양 전반에 걸친 매트릭스 기반 스크린샷 캡처가 지원됩니다. **서명 및 번들 ID:** ```bash asc bundle-ids capabilities list --bundle "BUNDLE_ID" asc signing fetch --bundle-id com.example.app --profile-type IOS_APP_STORE --output .asc/signing asc signing sync pull --repo [email protected]:team/signing.git --password-file ~/.config/asc/signing-sync-password --output-dir .asc/signing/pulled ``` `signing fetch`는 인증서 및 프로비저닝 프로필을 다운로드합니다. `signing sync`는 암호화된 Git 저장소를 통해 ID를 공유합니다. `--create-missing`를 사용하여 누락된 키/인증서/프로필을 한 번에 생성합니다. **워크플로 자동화:** ```bash asc workflow validate --output json asc workflow run --dry-run testflight_beta VERSION:1.2.3 ``` **Xcode Cloud:** ```bash asc xcode-cloud run --workflow-id "WORKFLOW_ID" --pull-request-id "PR_ID" asc xcode-cloud build-runs get --id "BUILD_RUN_ID" ``` **Apple Ads 및 StoreKit:** Apple Ads 캠페인 및 StoreKit Retention Messaging에는 별도의 OAuth 자격 증명이 사용됩니다. 설정은 `asc ads auth login` 및 `asc storekit auth login`을 참조하세요. ### 에이전트 스킬 검토된 25개의 `asc` 자동화 스킬은 https://github.com/rorkai/app-store-connect-cli-skills에서 사용할 수 있습니다. `asc install-skills`로 전역 설치하면 체크아웃된 커밋을 고정하고 모든 파일을 검증합니다. ### 개인정보 및 원격 측정 유지 관리자가 안정성을 추적할 수 있도록 기본적으로 가명 명령 수준 원격 측정이 전송됩니다. 이벤트에는 CLI 버전, OS, 아키텍처, 명령 경로, 기간 및 실패 시 HTTP 상태가 포함됩니다. 원시 인수, 자격 증명, Apple 계정 식별자, 번들 ID 및 파일 경로는 제외됩니다. `ASC_TELEMETRY_DISABLED=1`, `DO_NOT_TRACK=1` 또는 `asc telemetry disable`로 비활성화합니다. ### 문서 - `docs/CI_CD.md` — GitHub Actions, GitLab, Bitrise, CircleCI 통합 - `docs/WORKFLOWS.md` — 로컬 Xcode에서 TestFlight 패턴 - `commands/signing.mdx` — 서명 ID 설정 및 CI 순환 - `guides/apple-ads-playbooks.mdx` — Apple Ads 운영자 가이드 - `docs/API_NOTES.md` — API 특이점 및 동작 - `docs/PARITY.md` — 남은 패리티 영역 내장 도움말이 권위적입니다: `asc <command> --help`. 라이선스: MIT. 비공식 도구이며 Apple Inc.와 제휴하지 않습니다.