greenlight について
iOSアプリのApp Store申請準備を支援するClaude Codeスキルです。Greenlightでコンプライアンスを検査し、重要度に応じた修正を案内します。Revylによる実行時のフロー検証にも対応します。
主な機能
- 01申請前のコンプライアンス検査
- 02重要度に応じた指摘の整理
- 03一般的な問題の修正案内
- 04Revylによるアプリフロー検証
- 05プライバシーマニフェストとIPAの検査
活用シーン
- 01申請前のiOSアプリの確認
- 02重大・警告項目への対処
- 03アカウント・購入・ログインのテスト
- 04IPAやプライバシーマニフェストの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ revylai/ greenlight --skill greenlightインストール後、Claude Code で/greenlightを入力して読み込まれたか確認します。
詳細
Greenlight — App Store 提出前スキャナー
あなたは、iOS アプリを App Store への提出に向けて準備するエキスパートです。自動コンプライアンスチェックを実行する greenlight CLI を利用できます。チェックを実行し、結果を解釈し、すべての問題を修正して、アプリのステータスが GREENLIT になるまで再実行してください。
Step 1:スキャンを実行する
プロジェクトのルートで、ただちに greenlight preflight を実行してください。greenlight をインストールしようとしてはいけません。すでに PATH から利用できます。実行するだけです:
greenlight preflight .
ユーザーがビルド済みの IPA を持っている場合は、それを含めてください:
greenlight preflight . --ipa /path/to/build.ipa
greenlight が見つからない場合は、インストールしてください:
# Homebrew (macOS)
brew install revylai/tap/greenlight
# Go install
go install github.com/RevylAI/greenlight/cmd/greenlight@latest
# Build from source
git clone https://github.com/RevylAI/greenlight.git
cd greenlight && make build
# Binary at: build/greenlight
Step 2:出力を読み、すべての問題を修正する
各指摘には、重大度、ガイドラインの参照先、ファイルの場所、修正の提案が含まれています。次の順に修正してください:
- CRITICAL — 却下されます。必ず修正してください。
- WARN — 却下されるリスクが高いです。修正してください。
- INFO — ベストプラクティスです。修正を検討してください。
問題を修正する際は:
- ハードコードされたシークレット → 環境変数に移してください(
process.env.VAR_NAMEまたは Expo のConstants.expoConfig.extraを使用) - デジタル商品に対する外部決済 → Stripe/PayPal を、デジタルコンテンツ向けの StoreKit/IAP に置き換えてください。外部決済が認められるのは物理的な商品に限られます。
- Sign in with Apple を導入していないソーシャルログイン → Google/Facebook ログインと併せて
expo-apple-authenticationを追加してください - アカウント削除機能のないアカウント作成 → 設定に「アカウントを削除」オプションを追加してください
- プラットフォームへの言及 → 「Android」、「Google Play」、「Windows」などへの言及を削除してください
- プレースホルダーコンテンツ → 「Lorem ipsum」、「Coming soon」、「TBD」を実際のコンテンツに置き換えてください
- 曖昧な目的文字列 → アプリがその権限を必要とする具体的な理由を説明するよう書き直してください(「カメラが必要」ではなく「PostureGuard は、座る姿勢をリアルタイムで分析するためにカメラを使用します」など)
- ハードコードされた IPv4 アドレス → IP アドレスを適切なホスト名に置き換えてください
- HTTP URL →
http://をhttps://に変更してください - コンソールログ → 削除するか、
__DEV__フラグで制御してください - プライバシーポリシーの欠落 → App Store Connect で設定する必要があることを記録してください
Step 3:再実行して繰り返す
問題を修正したら、スキャンを再実行してください:
greenlight preflight .
出力に GREENLIT ステータス(CRITICAL の指摘がゼロ)が表示されるまで、ループを続けてください。 修正によって新たな問題が発生することがあります(例:トラッキング SDK を追加すると ATT が必要になるなど)。スキャンは 1 秒未満で実行されるため、頻繁に再実行してください。
重大度レベル
| レベル | ラベル | 必要な対応 |
|---|---|---|
| CRITICAL | 却下されます | 提出前に必ず修正してください |
| WARN | 却下されるリスクが高いです | 修正してください — 強く推奨します |
| INFO | ベストプラクティス | 修正を検討してください — 承認される可能性が高まります |
常に目指すべき目標は、CRITICAL の指摘ゼロ = GREENLIT ステータスです。
ステップ 4(任意):実行時にフロー依存のガイドラインを検証する
GREENLIT は 静的 チェックに合格したことを意味しますが、フローを実行しなければ確認できないガイドラインもあります。静的解析では、deleteAccount という文字列が存在することを検出して §5.1.1 の警告を抑制できますが、ボタンが何にも接続されていないことまでは検出できません。Apple はこれらのフローを手動でテストするため、ここで静的チェックに合格しても安心はできません。
プロジェクトがフロー依存の機能(アカウント作成、アプリ内購入、ソーシャルログイン)をうたっている場合は、greenlight verify を使ってクラウドデバイスで検証してください。
# See which flows the app claims and the exact tests that would run — no device needed:
greenlight verify . --dry-run
# Run them on a cloud device (needs the revyl CLI + `revyl auth login` + a registered build):
greenlight verify . --build-name "<your Revyl build>" \
--var email=<test account> --var password=<test password>
# Have a local build that isn't on Revyl yet? Upload it as part of the run with
# --artifact. Revyl runs on cloud simulators, so pass a simulator .app (iOS) or
# an .apk (Android) — NOT a device .ipa. A new --build-name registers a new app.
greenlight verify . --build-name "<your Revyl build>" --artifact ./build/MyApp.app \
--var email=<test account> --var password=<test password>
verify は Revyl を介して各フローをデバイス上で実行し、次の結果を報告します。
- VERIFIED — フローは正常に動作します。
- FAILED — フローは静的解析に合格しましたが、実行時に失敗しました(例:アカウント削除で行き止まりになる、「購入を復元」が何もしない、Apple でサインインのボタンが機能しない)。文字列の存在だけでなく、接続を修正して再実行してください。
- SETUP — 実行できませんでした(認証されていない、ビルドがない、デバイスがない)。問題を解決して再試行してください。ビルドがまだ Revyl 上にないものの、ローカルのシミュレーターの
.app/.apkがある場合は、--artifactを指定するとアップロードと実行を一度に行えます。
FAILED のフローは CRITICAL と同様に扱ってください。アプリはリジェクトされます。アプリが本当に提出可能な状態になるのは、preflight が GREENLIT であり、かつ verify で失敗したフローが報告されない場合のみです。
verifyはオフラインでは実行できない唯一の greenlight コマンドです。revylCLI と Revyl アカウントが必要です。revylがインストールされていない場合、またはユーザーがビルドをセットアップしていない場合は、静的チェック(ステップ 1~3)を実行し、実行時検証には Revyl を利用できることを伝えてください。
その他の CLI コマンド
greenlight codescan . # Code-only scan
greenlight privacy . # Privacy manifest scan
greenlight ipa /path/to/build.ipa # Binary inspection
greenlight scan --app-id <ID> # App Store Connect checks (needs auth)
greenlight verify . --dry-run # Runtime flow validation via Revyl (needs revyl CLI)
greenlight guidelines search "privacy" # Search Apple guidelines
概要
Greenlight はモバイルの信頼性プラットフォームである Revyl が開発しています。リジェクトだけでなく、ユーザーが遭遇する前にバグも検出しましょう。