2026 OpenClaw 実戦:リモート Mac で App Icon PNG 寸法と Contents.json を一括検証し修正レポートを出す再現手順

AppIcon.appiconset の PNG と Contents.json の不一致は、深夜ビルドで噴きやすい火種です。リモート Mac 上の OpenClaw で実測ピクセルと JSON を 一括突き合わせMarkdown 修正レポートを残す 2026 再現手順です。監視または launchd に繋げば デザイン納品の自動検収が安定します。pt/スケール対照は iOS アイコン納品マトリクス と併読してください。

目次

ズレが起きる典型原因

  • スケール計算ミス(コピーのみでピクセル未再計算)
  • JSON 未更新(リネーム後の filename 不整合・孤児 PNG)
  • 静かな 1px 変化(最適化・余白で辺長だけズレる)

マージ前ゲートでレポート 1 行に閉じ込め、直前炎上を防ぎます。

自動化の形の選び方

モード 向いている場面 トレードオフ
手動 CLI 申請直前のスポット監査 軽いが忘れやすい
OpenClaw + 監視 共有 リモート Mac の inbox 投入 デバウンスで部分書き込みを避ける
OpenClaw + launchd 定時バッチ 次実行までわずかに遅延

インストール・設定・実行(5 手順)

  1. OpenClaw 導入jqsips の寸法取得を確認。
  2. APPICON_DIRREPORT_PATH を環境変数化。レポート先頭に git rev-parse HEAD
  3. plutil -lint Contents.json で構文を先に潰す。
  4. images[]filename 行から size×scale(整数倍率)で期待 px を算出。
  5. sips 実測と diff、不一致は Markdown に追記し終了コード非 0 でゲート。

監視フックとバッチ用スクリプト例

監視:inbox 静止後に work→検証→outfailedバッチ:*.appiconset をループしレポート連結。

#!/usr/bin/env bash
set -euo pipefail
DIR="${1:?path to AppIcon.appiconset}"
REPORT="${2:-./appicon_validation_report.md}"
JSON="$DIR/Contents.json"
{
  echo "# AppIcon validation"
  echo "- host: $(hostname)"
  echo "- path: $DIR"
  echo ""
  echo "| filename | expected | actual | status |"
  echo "|---|---:|---:|---|"
} > "$REPORT"
while read -r name w h; do
  [[ -z "${name:-}" ]] && continue
  fp="$DIR/$name"
  if [[ ! -f "$fp" ]]; then
    echo "| $name | ${w}x${h} | missing | FIX: ファイル追加 |" >> "$REPORT"
    continue
  fi
  read -r aw ah < <(sips -g pixelWidth -g pixelHeight "$fp" \
    | awk '/pixelWidth/ {w=$2} /pixelHeight/ {print w, $2}')
  if [[ "$aw" -eq "$w" && "$ah" -eq "$h" ]]; then
    echo "| $name | ${w}x${h} | ${aw}x${ah} | OK |" >> "$REPORT"
  else
    echo "| $name | ${w}x${h} | ${aw}x${ah} | FIX: 再書き出し |" >> "$REPORT"
  fi
done < <(jq -r '.images[] | select(.filename!=null)
  | [.filename,
      ((.size|split("x")[0]|tonumber) * (.scale|sub("x";"")|tonumber)),
      ((.size|split("x")[1]|tonumber) * (.scale|sub("x";"")|tonumber))]
  | @tsv' "$JSON")
echo "Wrote $REPORT"

jq フィルタは ipad 専用行や scale 欠落に応じて拡張し、期待値は常に JSON から導出します。寸法が揃った後は PNG 一括 QA でアルファ・ICC・バイト上限を積み上げます。

倍率は 1×/2×/3× → 辺長に 1・2・3。監視は 30〜60 秒デバウンス、レポートは logs/ に履歴を残すと diff しやすいです。

FAQ:よくあるエラー

jq/JSON パースエラー

plutil -lint、コンフリクト記号・BOM 除去。

sips 失敗

0 バイト・誤拡張子・書き込み途中。静止ウィンドウと .done 併用。

寸法 OK だが Xcode が怒る

idiom/1024 アルファ/ターゲット要件は別。幾何ゲートは第一段。

検証を リモート Mac に寄せ、ノートの夜間占有を避けます。

閲覧ログイン不要

App Icon 検証ワーカーを載せる Mac ノードを比較する

料金・ノード一覧購入・レンタルログイン不要で開けます。SSH/VNC の手順はご利用ガイドにまとめてあり、同じスクリプトをレンタル機に貼り付けて再現できます。

料金を見る(ログイン不要) レンタル・購入へ 接続ガイド
リモート Mac · デザイン自動化 App Icon PNG 検証
料金(ログイン不要)