asc-screenshot-resize

asc-screenshot-resize

热门

结合 asc 实时截屏尺寸数据与 macOS sips 工具,对 App Store 应用截图进行缩放调整与合规校验。适用于准备提交 App Store Connect 或修复截图尺寸/格式问题的场景。

948Star
50Fork
更新于 2026/7/31
SKILL.md
只读
名称
asc-screenshot-resize
描述

结合 asc 实时截屏尺寸数据与 macOS sips 工具,对 App Store 应用截图进行缩放调整与合规校验。适用于准备提交 App Store Connect 或修复截图尺寸/格式问题的场景。

asc screenshot resize

使用此 Skill 为 App Store Connect 准备应用截图。不要依赖硬编码在 Skill 中的尺寸表,实际尺寸标准以 CLI(asc)返回的最新数据矩阵为准。

Source of truth

在处理截图前,务必先通过 asc 获取当前最新的支持尺寸:

asc screenshots sizes --output table
asc screenshots sizes --all --output table

上传前的本地校验:

asc screenshots validate --path "./screenshots/iphone" --device-type "IPHONE_65" --output table
asc screenshots validate --path "./screenshots/ipad" --device-type "IPAD_PRO_3GEN_129" --output table

常用设备类型标识(Anchor):

  • IPHONE_65:适用于常见的 6.5 英寸 iPhone 截图集。
  • IPAD_PRO_3GEN_129:适用于常见的 12.9/13 英寸 iPad 截图集。

若需适配其他显示类型(如 6.9 英寸 iPhone、Apple TV、Mac、Vision Pro、iMessage 或 Watch),请运行 asc screenshots sizes --all 查询。

Workflow

1. Sanitize filenames

macOS 截屏文件名中可能包含隐式 Unicode 空格,这会导致工具报错“not a valid file”(非有效文件)。在批量处理前先清理文件名:

python3 -c "
import os
for f in os.listdir('.'):
    clean = f.replace('\u202f', ' ')
    if f != clean:
        os.rename(f, clean)
        print(f'Renamed: {clean}')
"

2. Inspect dimensions and metadata

sips -g pixelWidth -g pixelHeight screenshot.png
sips -g hasAlpha -g space screenshot.png

App Store Connect 会拒绝带有 Alpha 透明通道的截图。可以通过转换为 JPEG 再转回 PNG 的方式剥离 Alpha 通道:

sips -s format jpeg input.png --out /tmp/asc-screenshot-no-alpha.jpg
sips -s format png /tmp/asc-screenshot-no-alpha.jpg --out output.png
rm /tmp/asc-screenshot-no-alpha.jpg

批量剥离 PNG 图片的 Alpha 通道:

for f in *.png; do
  if sips -g hasAlpha "$f" | grep -q "yes"; then
    sips -s format jpeg "$f" --out /tmp/asc-screenshot-no-alpha.jpg
    sips -s format png /tmp/asc-screenshot-no-alpha.jpg --out "$f"
    rm /tmp/asc-screenshot-no-alpha.jpg
    echo "Stripped alpha: $f"
  fi
done

3. Resize only after choosing a target from asc

先通过 asc screenshots sizes --all 确认目标宽高。注意 sips -z 参数顺序为先高度再宽度

# 示例:竖屏 IPHONE_65 1284 x 2778
sips -z 2778 1284 input.png --out output.png

批量调整至指定的尺寸:

mkdir -p resized
for f in *.png; do
  sips -z 2778 1284 "$f" --out "resized/$f"
done

4. Validate outputs with asc

sips -g pixelWidth -g pixelHeight -g hasAlpha resized/*.png
asc screenshots validate --path "./resized" --device-type "IPHONE_65" --output table

5. Upload only after validation

asc screenshots upload --version-localization "LOC_ID" --path "./resized" --device-type "IPHONE_65" --dry-run --output table
asc screenshots upload --version-localization "LOC_ID" --path "./resized" --device-type "IPHONE_65"

Guardrails

  • 始终以 asc screenshots sizes --all 的输出为准,Apple 官方的截图尺寸要求会随版本更新而变动。
  • 切勿跨不兼容的宽高比强行拉伸截图,除非用户明确接受画面变形的妥协。
  • 务必输出到独立的文件或目录中,保留原始图片。
  • 截图格式必须为 PNG 或 JPEG,且绝对不能包含 Alpha 透明通道。
  • 必要时将 Display P3 或其他色彩空间转换为 sRGB:
sips -m "/System/Library/ColorSync/Profiles/sRGB IEC61966-2.1.icc" input.png --out output.png
  • 上传前优先使用 asc screenshots validate 进行系统级校验,不要仅凭肉眼检查。