◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/アプリ開発
◇ アプリ開発/2026-07-07中級

App Store の新しい年齢別レーティングに答え直す — 複数アプリで実際に変わった項目とつまずき

13+・16+・18+が加わったApp Storeの新しい年齢別レーティングに、運用中の複数アプリで答え直した記録です。4つの新設質問カテゴリや最低年齢を自分で引き上げられる仕組み、Rorkで公開したアプリで実際に迷った項目と回答の手順を、つまずきも含めてまとめました。

App Store Connect15年齢レーティングアプリ公開11Rork585個人開発218

ある朝、いつものように軽微な修正をまとめてアップデートを申請しようとしたところ、App Store Connect の画面が先へ進みませんでした。「年齢別レーティングの質問に回答してください」という案内が、運用中のアプリすべてに一斉に出ていたのです。

締め切りは 2026 年 1 月 31 日。回答を終えるまで、以降のアップデートは提出できない仕組みでした。壁紙という穏やかなジャンルのアプリでも例外ではありません。個人開発で複数のアプリを並行して運用している身としては、地味ですが避けて通れない関門でした。

そのとき実際に手を動かして気づいたことを、順を追って書き残しておきます。Rork や Rork Max で公開したアプリでも通る道ですので、これから初めてストアに出す方の下調べにもなれば幸いです。

まず変わったのはレーティングの区分そのもの

これまでの 4+ / 9+ / 12+ / 17+ という区分が見直され、より細かい段階に置き換わりました。12+ と 17+ が姿を消し、代わりに 13+・16+・18+ が加わっています。

これまでこれから
4+4+(そのまま)
9+9+(そのまま)
12+13+ に統合・再判定
17+16+ / 18+ に分化

見落としやすいのは、既存アプリのレーティングが自動で再判定され、こちらが何もしないうちにストア表示が変わっていた点です。私の場合、以前 4+ だったアプリが 4+ のまま残っていたものもあれば、再判定を挟むまで表示が保留になっていたものもありました。申請前に、各アプリの現在のレーティングをストアと App Store Connect の両方で見比べておくことをおすすめします。

増えたのは4つの質問カテゴリ

今回の更新の中心は、区分の名前ではなく、質問の中身が増えたことです。すべてのアプリに対して、次の4カテゴリの新しい設問が必須になりました。

カテゴリ問われていること壁紙アプリでの私の判断
アプリ内のコントロール(In-app controls)年齢に応じた機能制限や保護者向けの制御があるか該当なし。ただし通報・ブロックを備えるアプリでは「あり」と答えられる
機能(Capabilities)ユーザー生成コンテンツ、ウェブ表示、メッセージ、AI チャットなどの有無と頻度外部リンクを開くウェブ表示の扱いを慎重に確認
医療・健康(Medical or wellness)医療情報や健康・ウェルネスに関する内容を扱うか該当なし
暴力的な表現(Violent themes)暴力的なテーマの有無と頻度該当なし

穏やかな内容のアプリでも、油断すると評価が上がってしまうのは「機能(Capabilities)」の欄でした。ここでは、アプリが持つ機能のうちユーザー生成コンテンツや外部ウェブの表示、そして AI アシスタントやチャット機能が、どのくらいの頻度でセンシティブな内容に触れうるかを申告します。

たとえば設定画面から利用規約のウェブページを開くだけの実装でも、「ウェブコンテンツを表示する」に広めに答えると、想定より高い区分に寄ることがあります。実際に触れうる範囲を、機能単位で一つずつ確認する必要がありました。

Apple は、AI アシスタントやチャット機能を含むすべての機能が、センシティブな内容の出現頻度にどう影響するかを開発者自身が考慮するよう求めています。生成 AI をアプリに組み込む場面が増えている今、ここは以前より丁寧に答えるべき項目になったと感じます。

「最低年齢を自分で引き上げられる」新しい余地

今回の更新で加わったもう一つの要素が、Apple が算出したレーティングよりも高い最低年齢を、開発者側で設定できるようになったことです。

これは、アプリの規約が Apple の判定より高い年齢を要件にしている場合に使います。質問へ回答したあと、App Store Connect の「App 情報」からより高い区分を選べます。

私自身は壁紙アプリで引き上げる必要はありませんでしたが、コミュニティ機能や課金前提のサービスを持つアプリでは、規約と表示レーティングを一致させる意味で有効な選択肢だと思います。

アプリ内のコントロールは「実装」で裏づける

「アプリ内のコントロール」や「機能」の回答は、口頭の宣言ではなく、実際の実装と揃っている必要があります。ユーザー生成コンテンツを扱うなら、通報・ブロックといった保護の仕組みを備えたうえで、その旨を回答するのが筋です。

Rork や Rork Max で作ったアプリでも考え方は同じです。React Native / Expo で最小限の通報導線を用意するなら、次のような形が出発点になります。

// 投稿を通報・ブロックする最小の導線
// 「アプリ内のコントロールがある」と回答する場合の裏づけになる
import { useState } from "react";
import { Alert } from "react-native";
 
async function reportContent(itemId: string, reason: string) {
  const res = await fetch("https://YOUR_API_HOST/api/reports", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ itemId, reason, at: new Date().toISOString() }),
  });
  if (!res.ok) throw new Error("report_failed");
}
 
export function useModeration() {
  const [blocked, setBlocked] = useState<string[]>([]);
 
  async function onReport(itemId: string) {
    try {
      await reportContent(itemId, "inappropriate");
      Alert.alert("受け付けました", "24時間以内に確認いたします。");
    } catch {
      Alert.alert("送信に失敗しました", "時間をおいて再度お試しください。");
    }
  }
 
  function onBlock(userId: string) {
    setBlocked((prev) => (prev.includes(userId) ? prev : [...prev, userId]));
  }
 
  return { blocked, onReport, onBlock };
}

大切なのは、機能の宣言と実装が一致していることです。通報導線がないのに「コントロールあり」と答えると、審査で齟齬が生まれます。逆に、備えているのに申告し忘れると、本来より高い区分になりかねません。

なお、ユーザーの年齢を扱う場合は、誕生日を集めずに年齢帯だけを受け取る Declared Age Range API が別に用意されています。レーティングの申告とユーザー側の年齢確認は目的が異なりますので、混同しないよう切り分けておくと整理しやすくなります。

私が実際にたどった手順

複数アプリを一つずつ確認したときの流れを、そのまま残しておきます。

手順やること
1App Store Connect の「App 情報」で、現在のレーティングと未回答の設問を確認する
24カテゴリの設問に、実装と一致する範囲で回答する(広めに答えすぎない)
3ウェブ表示・外部リンク・課金・通報導線など、機能を一つずつ棚卸しする
4算出されたレーティングを確認し、規約が要求するなら最低年齢を引き上げる
5ストア表示側のレーティングも見て、想定と食い違いがないか照合する

一本ずつ進めると、同じ構成のアプリでも回答が微妙に違うことに気づきます。ウェブ表示の有無、外部リンクの数、課金の種類。細部の違いが、そのまま最終的な区分に効いてきました。

気づいたこと

作業を終えて残ったのは、「レーティングは一度きりの設定ではなく、機能が増えるたびに見直す運用対象になった」という手応えです。

AI チャットやユーザー投稿のような機能を後から足したとき、レーティングへの影響を意識するかどうかで、審査での摩擦がだいぶ変わります。機能を追加する PR のチェックリストに、「レーティング設問への影響」を一行加えておくと、次回の申請がずいぶん楽になりました。

次に新しいアプリを出すときは、公開直前ではなく、機能を設計する段階でこの4カテゴリを見返すつもりです。小さな下準備ですが、締め切り直前に慌てずに済む効き目がありました。実装の参考になれば幸いです。お読みいただき、ありがとうございました。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

◇ アプリ開発2026-09-10
Rork のリポジトリに置く最初の EAS Workflow と、失敗した回にだけ届かない通知
Rork から書き出したリポジトリに .eas/workflows を二本置くまでの手順と、needs でつないだ通知が失敗した回にだけ届かなくなる理由を、手元で走る検査スクリプトの実行結果つきで書き残します。
◇ アプリ開発2026-08-16
グラフが壊れて見えるのは、データが多いときではなく最初の数日でした
記録アプリの折れ線グラフが、データの少ない最初の数日だけ線が消える。原因はY軸の幅が0になり座標がNaNになることでした。実測した挙動と、描画前に置く小さな正規化層を紹介します。
⟐ ビジネス2026-09-08
共有ボタンだけなら「ソーシャルメディア機能」には当たりません。フィードを持つと 13+ が下限になります
2026年9月から App Store の提出に必須となった「ソーシャルメディア機能」の質問について、Apple が引いた線の位置と、13歳未満で無効化する選択肢に付いてくる年齢範囲の取得を、expo-age-range の実装まで含めて書き残します。