Greenlight:高速 App Store 事前提出コンプライアンススキャナー
Greenlight:高速 App Store 事前提出コンプライアンススキャナー
iOS アプリのビルドは戦いの半分にすぎません。Apple のレビュー ガイドラインは厳格で、1 つの見落としが数日、数週間、あるいは数か月の開発時間を失う原因になります。Greenlight は、App Store Connect へアップロードする前にプロジェクトをスキャンすることで、あのリスクを排除します。
Greenlight とは?
Apple のレビュー ガイドラインを超えるオープンソースの CLI ベースのツールで、Swift、Objective‑C、React Native、Expo コードを 30 以上の却下リスクパターンに対して評価します。メタデータ、プライバシーマニフェスト、そして IPA バイナリの欠陥情報、悪質な URL、不適切なコンテンツもチェックします。スキャナーは 100 % オフラインで動作し、CI 統合用に人間が読める出力または JSON を生成します。
Greenlight が必要な理由
- 却下回避: Apple が検出する前に、プライベート API 使用、ハードコードされたシークレット、ATT の欠如などの重要問題を発見します。
- デプロイ速度向上: ローカルマシンまたは CI ランナーで 1 秒未満でスキャンします。
- CI 対応: GitHub Actions、Bitrise、あるいは任意の CI システムでパース可能な出力を提供します。
- セルフヒーリング: Claude または Codex のスキルをフックし、自動修正を行えます。
インストール&クイックスタート
| プラットフォーム | コマンド |
|---|---|
| macOS (Homebrew) | brew install revylai/tap/greenlight |
| Linux/Windows (Go) | go install github.com/RevylAI/greenlight/cmd/greenlight@latest |
| From Source | ``` |
| git clone https://github.com/RevylAI/greenlight.git | |
| cd greenlight && make build | |
| ``` |
インストール後、フルプリフライトスキャンを実行します:
# 現在のディレクトリをスキャンし、結果を端末に表示
greenlight preflight .
# IPA を含めてバイナリ検査を実行
greenlight preflight . --ipa build.ipa
# CI パイプラインでの解析用に JSON をエクスポート
greenlight preflight . --format json --output report.json
preflight コマンドは、metadata、codescan、privacy、およびオプションの ipa チェックを並列で実行します。
ディープダイブ:各スキャナーがチェックする項目
| スキャナー | チェック項目 |
|---|---|
metadata |
Info.plist、app.json の検証 – 名称、バンドル ID、アイコン、プライバシーポリシー URL、目的文字列 |
codescan |
30 以上のパターン: |
| - プライベート API の呼び出し | |
| - ハードコードされたシークレットや API キー | |
| - デジタル商品の外部課金 | |
| - 動的コード実行 | |
| - 暗号採掘 | |
| - Sign‑in‑with‑Apple の欠如 | |
| - ATT が不要な広告 SDK の欠如 | |
| - 「購入を復元」なしのソーシャルログイン | |
| - 置換文字列、IPv4 リテラル、不安全 URL | |
privacy |
PrivacyInfo.xcprivacy の完全性、Required‑Reason API のマッピング、トラッキング SDK 対応と ATT 実装 |
ipa |
バイナリチェック:Info.plist キー、起動ストーリーボード、アイコンサイズ、アプリサイズ、フレームワークプライバシーマニフェスト |
CI / CD 統合
Greenlight は JSON を出力するので、パイプラインで自動化に最適です。以下は、任意のクリティカル問題でビルドを失敗させる最小限の GitHub Actions スニペットです:
- name: App Store compliance
run: |
greenlight preflight .
greenlight preflight . --format json --output report.json
if jq -e '.summary.critical > 0' report.json > /dev/null; then
echo "CRITICAL issues found – fix before submission"
exit 1
fi
より高度な使い方として、JUnit の出力や、scan コマンドで App Store Connect のメタデータを直接クエリすることも可能です。
Claude & Codex での自動修正
Claude コードスキル
# スキルファイルをコピー
mkdir -p .claude/skills
cp /path/to/greenlight/SKILL.md .claude/skills/greenlight.md
これで Claude に尋ねます:
Run greenlight preflight and fix everything until it passes
Claude は再スキャンし、修正し、結果が GREENLIT になるまで繰り返します。
Codex スキル
mkdir -p ~/.codex/skills/app-store-preflight-compliance
cp -R codex-skill/* ~/.codex/skills/app-store-preflight-compliance/
次に Codex のプロンプトで:
Use $app-store-preflight-compliance to run Greenlight preflight and fix all findings until GREENLIT.
両スキルで Greenlight をセルフヒーリングのコンプライアンスランナーに変えます。
Greenlight を使うタイミング
| シナリオ | Greenlight の必要性 |
|---|---|
| New App | 最初の App Store Connect アップロード前に、コード、メタデータ、バイナリを検証 |
| Legacy App | 最近の移行後に潜在的なプライバシーや API の問題を特定 |
| CI Pipeline | TestFlight 用ビルドを作成する前のコンプライアンスをゲートとして強制 |
| Security Team | ハードコードされたシークレットや暗号採掘パターンを検出 |
| Continuous Delivery | Pull request で Claude または Codex を使って自動修正 |
ヘルプ & コントリビューション
Greenlight は MIT ライセンスで公開されています。貢献歓迎 – コントリビューション方法はレポジトリを参照してください。ドキュメントは README.md にあり、AI 統合のための最小 SKILL.md と codex-skill パッケージが含まれています。
詳細は GitHub リポジトリをご覧ください:
- Repository: https://github.com/RevylAI/greenlight
- Documentation: https://github.com/RevylAI/greenlight/blob/main/README.md
結論
事前提出のコンプライアンスは、アプリリリースを妨げる静かな敵です。Greenlight は、コード、メタデータ、プライバシー、バイナリに関して即座に行動可能なフィードバックを提供し、Apple の厳格なガイドラインを満たすためのビルド前にすべてを保証します。
1 つのコマンドで、ローカルプロジェクトまたは IPA ファイルをスキャンし、CI パイプラインでコンプライアンスを強制し、AI ツールと連携して重要問題を自動修正し、コードベースを健康に保ち、プライバシーマニフェストを最新にし、App Store のレビューをスムーズに受ける準備ができます。
今日から始めましょう ― Greenlight をインストールし、プリフライトスキャンを実行し、あの恐ろしい却下を回避してください。