asc-shots-pipeline

Orchestrate iOS screenshot automation with xcodebuild/simctl for build-run, AXe for UI actions, JSON settings and plan files, Koubou-based framing (`asc screenshots frame`), and screenshot upload (`asc screenshots upload`). Use when users ask for automated screenshot capture, AXe-driven simulator fl

By rorkai · 6,276 installs

npx skills add rorkai/app-store-connect-cli-skills --skill asc-shots-pipeline

Source repository · Upstream listing

asc screenshots pipeline (xcodebuild AXe frame asc) Use this skill for agent driven screenshot workflows where the app is built and launched with Xcode CLI tools, UI is driven with AXe, and screenshots are uploaded with asc . Current scope Implemented now: build/run, AXe plan capture, frame composition, and upload. Device discovery is built in via asc screenshots list frame devices . Local screenshot automation commands are experimental in asc cli. Framing is pinned to Koubou 0.18.1 for deterministic output. Feedback/issues: https://github.com/rorkai/App Store Connect CLI/issues/new/choose Defaults Settings file: .asc/shots.settings.json Capture plan: .asc/screenshots.json Raw screenshots dir: ./screenshots/raw Framed screenshots dir: ./screenshots/framed Default frame device: iphone air 1) Create settings JSON first Create or update .asc/shots.settings.json : If you intentionally skip framing, set: "frame enabled": false "upload.source dir": "./screenshots/raw" 2) Build and run app on simulator Use Xcode CLI for build/install/launch: Use xcodebuild showBuildSettings if the app bundle path differs from the default location. 3) Capture screenshots with AXe (or asc screenshots run ) Prefer plan driven capture: Useful AXe primitives during plan authoring: Minimal .asc/screenshots.json example: 4) Frame screenshots with asc screenshots frame The asc CLI pins framing to Koubou 0.18.1 . Install and verify before running framing steps: List supported frame device values first: Frame one screenshot (defaults to iphone air ): Supported device values: iphone air (default) iphone 17 pro iphone 17 pro max iphone 16e iphone 17 mac 5) Upload screenshots with asc Generate and review artifacts before upload: For reviewed multi locale sets, prefer the plan/apply flow so existing remote screenshot counts are included before upload: Upload from the configured source directory (default ./screenshots/framed when framing is enabled): List or validate before upload when needed: Agent behavior Always confirm exact flags with help before running commands. Re check command paths with asc screenshots help because screenshot commands are evolving quickly. Keep outputs deterministic: default to JSON for machine steps. Prefer asc screenshots list frame devices output json before selecting a frame device. Ensure screenshot files exist before upload. Use explicit long flags ( app , output , version localization , etc.). Treat screenshot local automation as experimental and call it out in user facing handoff notes. Use asc screenshots plan / asc screenshots apply for reviewed batches when you need append limit guardrails across existing remote screenshots. If framing fails with a version error, re install pinned Koubou: pip install koubou==0.18.1 . If framing fails because device frames are missing, run kou setup frames once with network access. 6) Multi locale capture (optional) Do not use xcrun simctl launch ... e AppleLanguages for localization. e is an environment variable pattern and does not reliably switch app language. For this pipeline, use simulator wide locale defaults per UDID. This works with asc screenshots capture , which relaunches the app internally. If you launch manually (outside asc screenshots capture ), use app launch arguments: 7) Parallel execution for speed Run one locale per simulator UDID in parallel: Or use xargs with locale:udid pairs: 8) Full multi locale pipeline example