Rork で画面の形はできた。手元の iPhone でも動いている。それなのに公開できない、という相談を何度か受けました。詰まっているのはコードではなく、その先にある App Store Connect の工程です。
私自身、個人で壁紙アプリを出し始めた頃に一番時間を溶かしたのも、実装ではありませんでした。年齢レーティングの質問に一つずつ答え、Appプライバシーの申告項目を埋め、スクリーンショットのサイズで弾かれ、審査に出して、返ってくる。この一周を知らないまま最初の本命アプリで挑むと、アプリの出来とは関係のないところで消耗します。
そこで使えるのが iMessage のステッカーパックです。コードを1行も書かずに提出でき、しかも App Store Connect 側の工程はフルアプリとほぼ同じものが要求されます。予行演習として、これ以上に都合のいい題材はそうありません。
ただし、正直に先に書いておきます。これは収益の話ではありません。
収益にならない、という制約を先に飲む
ステッカーパック単体のアプリには、App内課金を載せられません。広告も入りません。取れる選択肢は「無料」か「最初に買い切り」の二択だけです。
これは実装の手間の問題ではなく、枠そのものの仕様です。課金やメディア共有、Apple Pay まで扱いたいなら、それはステッカーパックではなく iMessage アプリという別の枠になります。
なので、ステッカーパックを「小さく稼ぐ入口」として期待すると、ほぼ確実に肩透かしを食らいます。私はここを取り違えている人を何度か見ました。
見方を変えます。収益を載せられないということは、収益まわりの申告が一切発生しないということでもあります。広告SDKを入れないので、Appプライバシーの申告は驚くほど軽くなります。課金がないので、StoreKit も価格設定も、サブスクの審査観点も出てきません。
つまり、申請工程のうち「アプリ固有の重たい部分」だけがきれいに抜け落ちて、「どのアプリでも必ず通る共通の骨格」が残ります。予行演習の教材としては、むしろこの方が良い。余計な変数がないぶん、詰まった場所がそのまま自分の知識の穴になります。
実際に必要になるものは、これだけ
| 項目 | ステッカーパック | 通常のアプリ |
|---|---|---|
| コード | 不要 | 必要 |
| Apple Developer Program | 必要(年間登録) | 必要 |
| App Store Connect のアプリレコード | 必要 | 必要 |
| 年齢別レーティングの回答 | 必要 | 必要 |
| Appプライバシーの申告 | 必要(ただし収集なしなら軽い) | 必要 |
| スクリーンショット | 必要(メッセージ画面のもの) | 必要 |
| アイコン | 2系統必要 | 1系統 |
| App内課金 | 不可 | 可 |
| 広告 | 不可 | 可 |
太字にした3つが、ステッカーパック特有の面です。とくにアイコンが2系統というのは、初回に確実につまずきます。App Store for iMessage 用のものと、iPhone・iPad 向けの App Store 用のもので、必要な形が別に用意されています。普段のアプリアイコンの感覚で1セットだけ作ると、アップロード時に足りないと言われます。
画像仕様で止まるのは、たいていこの2つ
ステッカーの画像には、Apple が3つの寸法を用意しています。@3x で書き出すので、実ファイルとしては 300×300 px、408×408 px、618×618 px のいずれかです。
ここに最初の落とし穴があります。3つから1つを選び、パック内の全ステッカーをその寸法で揃える必要があります。大きいものは大きく、小さいものは小さく、という混在ができません。手元の素材の都合で1枚だけサイズが違う、というのが通りません。
もう1つが容量です。1枚あたり 500KB を超えられません。静止画なら余裕がありますが、アニメーションを入れた途端に現実的な制約になります。
この2つは、素材を並べる前に決めておく類のものです。作ってから直すと、全部作り直しになります。
私は壁紙アプリで、大きい原寸を1枚だけ持って、そこから機械的に縮小して各サイズを生成する形に落ち着きました。ステッカーでも同じ形が使えます。618×618 を正としてそこから下ろすなら、後から寸法を変えたくなっても原寸に戻るだけで済みます。
書き出したあとの確認は、手で1枚ずつ見るより一括で回した方が確実です。macOS なら追加のインストールなしでこう書けます。
#!/bin/bash
# stickers/ 以下の PNG を 618x618 に揃え、500KB 超のものを洗い出す
# 使い方: bash check-stickers.sh stickers
SRC="${1:-stickers}"
OUT="$SRC/out"
SIZE=618
LIMIT=512000 # 500KB = 500 * 1024
mkdir -p "$OUT"
over=0
for f in "$SRC"/*.png; do
[ -e "$f" ] || { echo "PNG が見つかりません: $SRC"; exit 1; }
name=$(basename "$f")
# 縦横比を保ったまま長辺を 618 に収める(sips は macOS 標準)
sips -Z "$SIZE" "$f" --out "$OUT/$name" > /dev/null 2>&1
bytes=$(stat -f%z "$OUT/$name")
dim=$(sips -g pixelWidth -g pixelHeight "$OUT/$name" | awk '/pixel/ {printf "%s", $2" "}')
if [ "$bytes" -gt "$LIMIT" ]; then
echo "❌ $name : ${bytes} bytes (${dim}) — 500KB 超過"
over=$((over + 1))
else
echo "✅ $name : ${bytes} bytes (${dim})"
fi
done
echo "---"
if [ "$over" -gt 0 ]; then
echo "$over 枚が 500KB を超えています。書き出し設定を見直してください。"
exit 1
fi
echo "全て条件を満たしています。"sips -Z は長辺を指定値に収める指定です。正方形でない素材を投げると 618×618 にはならず、長辺だけが 618 になります。出力される寸法をその場で表示しているのはそのためで、618 618 以外が並んだら素材側が正方形になっていないという合図です。ここを黙って通すと、Xcode の側で気付くことになります。
終了コードを返しているので、素材を差し替えるたびに走らせておけば、提出直前に容量で弾かれる事故が減ります。
一周して、初めて分かること
ステッカーパックを1本出すと、次のものが手元に残ります。
Apple Developer Program の登録と、証明書まわりが片付いた状態。App Store Connect のアプリレコードを自分で作った経験。年齢別レーティングの質問に、自分のアプリの文脈で答えた記憶。Appプライバシーで「何も収集していない」と申告する場合の形。そして、審査に出してから返事が来るまでの体感時間。
最後のものが、実は一番効きます。審査の待ち時間を体で知っているかどうかで、本命アプリのリリース計画の立て方が変わります。知らないと、だいたい楽観的に見積もって、後ろの予定が全部ずれます。
もう1つ、地味ですが大きいのがスクリーンショットです。ステッカーパックのスクリーンショットは、メッセージのやり取りの中でステッカーが使われている画面を求められます。つまり「機能の説明」ではなく「使われている場面」を撮ることになる。この感覚は本命アプリのストア画像にそのまま効きます。撮り方そのものについては App Store のスクショは6.9インチだけ撮れば足りる — 多言語アプリの本数を減らす撮影パイプライン に、本数を減らす側の工夫をまとめています。
収益を載せたくなった時が、次の分岐点
一周してみると、たぶん物足りなくなります。ステッカーは出せた、でも課金も広告も載らない。ここが分岐点です。
ステッカーに課金やメディア共有を載せたいなら、ステッカーパック単体ではなく iMessage アプリとして作る必要があります。ここからはコードの世界です。Rork Max が iMessage を射程に入れているのは、まさにこの層で、メッセージの中に自分のアプリの世界を持ち込む話になります。実装側の話は Rork Max で iMessage 拡張を作り、アプリの世界観をメッセージに持ち込む — 配布導線としての実装メモ に寄せました。
順序としては、この順番が無理がないと考えています。ステッカーパックで申請の骨格を通し、詰まった場所を把握してから、コードの要る枠に進む。逆にすると、実装の不具合と申請の不案内が同時に来て、どちらが原因か切り分けられなくなります。
まとめ
ステッカーパックは、稼ぐための枠ではありません。App内課金も広告も載らない以上、収益の期待は持たない方がいい。
そのかわり、コードを1行も書かずに App Store の申請工程を丸ごと一周できます。詰まる場所が自分の知識の穴として、はっきり残ります。
もし今、Rork で作ったアプリの公開手前で止まっているなら、素材を10枚ほど用意して、618×618 に揃えて、一度出してみてください。落ちても失うものはほとんどありません。得られるのは、本命アプリを出す時に迷わずに済む一周分の地図です。
私自身、最初の一周でつまずいた項目は今でも覚えています。あの遠回りがあったから、その後の申請は落ち着いて進められました。お読みいただきありがとうございました。