asc-screenshot-resize

asc-screenshot-resize

熱門

使用 asc 的最新截圖尺寸資料與 macOS 的 sips 工具,調整並驗證 App Store 截圖規格。適用於準備或修復提交至 App Store Connect 的截圖。

948星標
50分支
更新於 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 提供。

權威單一來源 (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

常見的裝置類型識別碼(device-type):

  • 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

工作流程

1. 清理檔名

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. 檢視尺寸與元資料 (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. 先從 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. 使用 asc 驗證輸出結果

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

5. 完成驗證後再進行上傳

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 進行驗證,而非僅靠目測檢查。