让AI自动修复合规问题:Greenlight接入Claude Code,从扫描到修复到GREENLIT的完整闭环
【免费下载链接】greenlightPre-submission compliance scanner for the Apple App Store and Google Play. Scans code, privacy manifests, Android manifests, and IPA/APK/AAB binaries against the review guidelines. Offline, no account.项目地址: https://gitcode.com/gh_mirrors/greenlight2/greenlight
Greenlight是一款面向 Apple App Store 和 Google Play 的提交前合规扫描工具:它离线读取你的源码、隐私清单、Android 清单和 IPA/APK/AAB 产物,对照两大商店的审核指南逐条检查,每条问题都标注规则出处——无需账号、不上传任何数据。而它最有意思的玩法,是作为技能(Skill)接入Claude Code:一句话指令,AI 就会自动跑扫描、读懂报告、按严重等级逐条修改代码,再循环复检,直到终端亮起GREENLIT🟢。
为什么需要"合规体检"?
应用被拒的原因往往很"琐碎":硬编码的 API Key、社交登录没配 Sign in with Apple、http://明文链接、权限描述含糊……这些坑在代码里散落各处,靠人肉对照几百条审核指南既慢又漏。
Greenlight 把这件事变成了一条命令:
| 扫描器 | 覆盖内容 |
|---|---|
| metadata | app.json / Info.plist:名称、版本、Bundle ID、隐私政策 URL、权限描述 |
| codescan | 24 条规则、约 60 个模式,覆盖 Swift、Objective-C、React Native、Expo |
| privacy | PrivacyInfo.xcprivacy 完整性、Required Reason API、追踪 SDK 与 ATT 交叉核对 |
| playscan | Google Play 政策:target API 截止期、受限权限、前台服务、Billing 版本 |
| ipa | 二进制检查:Plist、启动画面、图标、200 MB 蜂窝下载限额 |
跨平台项目一次全查:iOS 和 Android 代码放在同一个仓库,一条命令同时对照两大商店。整个扫描在毫秒级完成,详见 README.md。
一键安装:三种方式任选
# Homebrew(macOS) brew install revylai/tap/greenlight # 从源码构建 git clone https://gitcode.com/gh_mirrors/greenlight2/greenlight cd greenlight && make build # 产物在 build/greenlight构建流程定义在 Makefile,Go 版本要求见 go.mod。
接入 Claude Code:两步配置
第一步:添加技能包。在 Claude Code 中执行:
/plugin marketplace add RevylAI/greenlight /plugin install greenlight第二步(手动方式):也可以直接把技能文件拷进项目:
mkdir -p .claude/skills cp skills/greenlight/SKILL.md .claude/skills/greenlight.md技能核心就是 skills/greenlight/SKILL.md 这份 Markdown——它把"扫描 → 修复 → 复检"的完整工作流和常见修复手册写成了 AI 可执行的指令。仓库里还附带了 Codex 版本,位于 codex-skill/SKILL.md,默认提示词定义在 codex-skill/agents/openai.yaml。
小提示:Claude Code 会在
skills/<name>/SKILL.md路径下发现插件技能,所以根目录的 SKILL.md 只是一个指向新位置的引导文件。
闭环是如何运转的:扫描 → 修复 → 复检
第 1 步 🔍 扫描:一条命令跑完所有检查器
技能指示 AI 立即在项目根目录执行greenlight preflight .(有构建好的 IPA 就加上--ipa)。每条发现都带严重等级、规则条款出处、文件位置和修复建议,AI 拿到的是可直接行动的"工单",而不是一堆模糊提示。
第 2 步 🔧 修复:按严重等级逐条处理
技能内置了一张实战修复清单(skills/greenlight/SKILL.md):
| 问题 | AI 的标准修法 |
|---|---|
| 硬编码密钥 | 迁移到环境变量(process.env/ Expoextra) |
| 数字商品外部支付 | Stripe/PayPal 换回 StoreKit/IAP |
| 社交登录缺 Sign in with Apple | 补上 Apple 登录 |
| 有注册无删除 | 在设置里加"删除账号"入口 |
| 平台竞品引用 / 占位文案 | 删除或替换为真实内容 |
| 权限描述含糊 | 改写成"为什么需要"的具体说明 |
修复遵循 CRITICAL → HIGH → WARN → INFO 的等级梯级,先救命后优化。
第 3 步 🔄 复检:循环直到 GREENLIT
每修完一轮就重跑greenlight preflight .。扫描不到 1 秒,AI 可以高频循环——而且这一步很重要:修复本身可能引入新问题(比如加了追踪 SDK 就必须同时处理 ATT)。
终局状态由 internal/cli/preflight.go 打印在报告页脚:
- 🟢GREENLIT—— 无 CRITICAL,可以提交
- 🟡NEEDS REVIEW—— 有高危项,大概率被拒
- 🔴NOT READY—— 有 CRITICAL,必须修复
进阶:静态扫描够吗?
静态扫描只能证明一个流程"存在",不能证明它"能跑通"——一个什么都没接的"删除账号"按钮照样能通过扫描。这时greenlight verify会接管:它把删除账号、恢复购买、Sign in with Apple三条关键流程交给云端设备真实执行,失败即判 BLOCK(实现见 internal/verify/)。技能文件的 Step 4 已把该动作写进工作流(skills/greenlight/SKILL.md),所以 AI 修复到 GREENLIT 后,还会顺带验证运行时流程。
常见问题 FAQ
它离线吗?除verify需要云端设备外,其余命令全部离线运行,不上传任何代码。
支持我的技术栈吗?Swift、Objective-C、React Native、Expo,以及 Android(源码与--apk/--aab构建产物均可,见 internal/playscan/)。
能接入 CI 吗?可以,greenlight preflight . --exit-code在出现 CRITICAL/HIGH 时返回非零码,还能输出 SARIF/JSON 格式供流水线消费。
小结
Greenlight 把"对着审核指南找问题"这件苦差事变成了机器可读的报告,而 Claude Code 技能包则让 AI 沿着报告一路修到 GREENLIT。扫描、修复、复检、运行时验证,四步闭环全部自动完成——你只需要在终端确认那盏绿灯 🟢。
【免费下载链接】greenlightPre-submission compliance scanner for the Apple App Store and Google Play. Scans code, privacy manifests, Android manifests, and IPA/APK/AAB binaries against the review guidelines. Offline, no account.项目地址: https://gitcode.com/gh_mirrors/greenlight2/greenlight
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考