Skip to content

Screenshots: target iOS 26 sims + run capture on CI - #36

Open
adborbas wants to merge 1 commit into
mainfrom
chore/screenshots-ios26-ci
Open

Screenshots: target iOS 26 sims + run capture on CI#36
adborbas wants to merge 1 commit into
mainfrom
chore/screenshots-ios26-ci

Conversation

@adborbas

Copy link
Copy Markdown
Owner

Changes

  • scripts/capture-screenshots.sh:
    • Selects only iOS 26+ simulators (highest version wins) so screenshots capture the iOS 26 Liquid Glass styling; older runtimes render the pre-26 look.
    • Fails loudly if either required device (iPhone 16 Pro Max / iPad Pro 13") is missing on an iOS 26 runtime, instead of silently capturing a partial/old set.
    • Honours a new SCREENSHOT_XCODEBUILD_ARGS env var, appended to xcodebuild test (empty locally; CI uses it to disable code signing).
  • .github/workflows/screenshots.yml (new): an App Store Screenshots workflow_dispatch workflow that runs the script on the Xcode 26 image with signing disabled and uploads the shots as an artifact.
  • .github/workflows/release.yml: pass the same signing-flag env into the existing promo-screenshots job (it calls capture-screenshots.sh transitively), resolving its stale TODO.

Why

The capture script previously grabbed whichever runtime was newest and was never wired into CI. Pinning to iOS 26 gets the Liquid Glass look, and a dedicated workflow makes screenshot generation reproducible on the CI Xcode 26 image (which guarantees the iOS 26 sims) rather than a local machine.

Notes

  • Relies on the CI Xcode 26 image providing iPhone 16 Pro Max + iPad Pro 13" (M4) devices on iOS 26 — worth confirming on the first workflow_dispatch run; the script now errors clearly if a device isn't present.
  • Verified: bash -n passes under bash 3.2 (runner version), the empty-array guard is safe under set -u, and both workflows are valid YAML.
  • Screenshots still upload to App Store Connect manually (the artifact is for download).

capture-screenshots.sh now selects only iOS 26+ simulators (highest version
wins) so screenshots show the iOS 26 Liquid Glass styling, and fails loudly if
a required device is missing on that runtime. It also honours
SCREENSHOT_XCODEBUILD_ARGS so CI can disable code signing (simulator builds
need none).

Adds an 'App Store Screenshots' workflow_dispatch workflow that runs the script
on the Xcode 26 image and uploads the result as an artifact, and wires the same
signing-flag env into the existing promo-screenshots job (resolving its TODO).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant