[EPAC-1973]: add native iPad screenshot capture via Fastlane Snapshot#684
Merged
github-actions[bot] merged 1 commit intoMay 28, 2026
Conversation
Extend the Snapfile to include iPad Pro 13-inch (M4) and iPad Pro 11-inch (M4) alongside the existing two iPhone devices. Add AppStoreScreenshotTests with a testCaptureAppStoreScreenshotSources method that iterates all 6 showcase pages and calls snapshot() via SnapshotHelper.swift (vendored from Fastlane). The showcase view (AppStoreScreenshotShowcaseView) now detects iPad via horizontalSizeClass == .regular and renders a two-column layout — headlines on the left, content card on the right — instead of the phone's page-style TabView. This ensures iPad screenshots are visually distinct (decision b per the ticket). Remove 12 legacy APP_IPAD_PRO_* upscaled PNGs that were resized from iPhone captures. Update docs/marketing/screenshots/README.md to reflect the actual fastlane snapshot pipeline. Exclude vendored SnapshotHelper.swift from SwiftLint.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds native iPad App Store screenshot capture so the listing shows real iPad layouts instead of upscaled iPhone art.
iPad Pro 13-inch (M4)andiPad Pro 11-inch (M4)— 4 devices totaltestCaptureAppStoreScreenshotSourcesthat iterates 6 showcase pages and callssnapshot()via Fastlane's SnapshotHelperAppStoreScreenshotShowcaseViewnow detectshorizontalSizeClass == .regular(iPad) and renders a two-column layout — headline/subtitle on the left, content card on the right — visually distinct from the phone's page-style TabViewAPP_IPAD_PRO_*upscaled PNGs; excluded vendoredSnapshotHelper.swiftfrom SwiftLintdocs/marketing/screenshots/README.mdto document the actualfastlane snapshotpipeline, removing stale references torender_app_store_screenshots.shDesign decision
Decision (b) — iPad-adapted showcase layout. The showcase view branches on
horizontalSizeClassto use a two-columnHStackcomposition (larger 44pt headlines on the left, phone-frame content card constrained to 420pt on the right) instead of the phone's single-column page-styleTabView. This ships faster than capturing the realiPadLayoutNavigationSplitView (decision a), which depends on Stage 2 per-tab two-column work landing first. A follow-up issue for decision (a) can be filed after Stage 2 lands.Files changed
ios/fastlane/Snapfileios/epacUITests/AppStoreScreenshotTests.swiftios/epacUITests/SnapshotHelper.swiftios/epac/Views/ContentView.swift.swiftlint.ymldocs/marketing/screenshots/README.mdios/fastlane/screenshots/en-CA/APP_IPAD_PRO_*Verification
cd ios && make buildpassescd ios && xcodebuild build-for-testing(UI test target compiles)swiftlint --strictclean on changed files (pre-existing violations inepac-clip/are unrelated)python3 scripts/localization/check_localizations.py --github-warnings— 100% coveragebundle exec fastlane snapshotnot run in CI (local-only release task per issue scope) — requires iPhone 16 Pro Max, iPhone 16, iPad Pro 13-inch (M4), and iPad Pro 11-inch (M4) simulators installedSkipped verification
fastlane snapshotrun: requires the specific simulator runtimes listed in the Snapfile. This is a local-only release-engineering task; CI screenshot capture is out of scope per the issue.Reviewer-Boundary: review-only