Repository navigation
feat(screenshots): import into the App Asset Library (--to-library) - #37
Conversation
`asc screenshots import --to-library` uploads each distinct file once to the app's asset library, waits for processing, places each image in the version-localization slot that matches its exact pixel size, and orders each group to match the manifest. `--existing fail|replace|append` decides what happens to a group that already has placements; `--placement-group` settles the few sizes that fit two groups (iPad 12.9"/13", Apple TV/Vision Pro); `--dry-run` prints the plan. One result per locale and group, with status and next commands. Also on REST: POST /api/v1/versions/:versionId/screenshots/import?to-library=true. Affordance gains `flags` for bare CLI flags; the four-argument initializer is kept for installed plugins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to The screenshot-import REST path is wired into normal initialization. Although its registration also depends on video-repository setup, the available evidence does not establish a concrete failure condition that would make the endpoint unavailable; no merge-blocking risk is identified. Pre-merge checks |
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #37 +/- ##
==========================================
- Coverage 84.43% 84.29% -0.15%
==========================================
Files 519 524 +5
Lines 15600 15879 +279
==========================================
+ Hits 13172 13385 +213
- Misses 2428 2494 +66
🚀 New features to boost your workflow:
|
…rt-to-library # Conflicts: # CHANGELOG.md
Why
Apple deprecated app screenshot sets in API 4.5.1.
asc screenshots import, used by the screenshot editor andapp-shotsexport, still uploads into them. This adds the App Asset Library path, opt-in for now.What changed
asc screenshots import --version-id V --from export.zip --to-library [--existing fail|replace|append] [--placement-group G]... [--dry-run]failby default. The group is reported asconflictwith areplacesuggestion, and other groups continue.replacedeletes the old placements first;appendkeeps them.status(planned/placed/conflict/ambiguous/noMatchingGroup/overLimit/failed) and next commands. The exit code is non-zero if any group isn't placed.POST /api/v1/versions/:versionId/screenshots/import?to-library=true, with the zip as the body.--to-library: unchanged, plus a deprecation note on stderr.--existing,--placement-groupand--dry-runare refused without--to-library, so a typo can't run a real import into sets.Shared change:
Affordancegainsflagsfor bare CLI flags (--to-library). The four-argument initializer is kept so installed plugins still link. Because the struct's layout changed, rebuild the ASC Pro plugin after this merges.How it was verified
swift testpasses: 651 + 1418 + 753.--dry-run(read-only) on a version in Prepare for Submission, using a synthetic two-locale zip:IPHONE_DYNAMIC_ISLAND_LARGE_PROFILE,planned.ambiguous(IPAD_13_PROFILE,IPAD_129_PROFILE), exit code 1.--placement-group IPAD_13_PROFILE→ bothplanned, exit code 0.Checklist
swift testpassesasc web-server## [Unreleased]inCHANGELOG.mdmake docs && make check-docspasses.p8, issuer ID or Apple ID session in the diff, output or screenshots🤖 Generated with Claude Code
Summary by CodeRabbit
--dry-run, or choose how to handle existing screenshots: fail, replace, or append.--to-librarycontinue using screenshot sets; this workflow is deprecated.