Greenlight:快速 App Store 预提交合规性扫描器
Greenlight:快速 App Store 预提交合规性扫描器
构建 iOS 应用只是一半的工作。Apple 的审核指南极为严格,任何疏忽都可能导致数天、数周甚至数月的开发时间损失。Greenlight 通过在您上传到 App Store Connect 之前扫描项目,消除这一风险。
什么是 Greenlight?
一款开源、基于 CLI 的工具,评估 Swift、Objective‑C、React Native 以及 Expo 代码中的 30+ 次拒绝模式风险。它还检查元数据、隐私声明,甚至 IPA 二进制文件,查找缺失信息、错误 URL 或不安全内容。扫描器 100 % 离线,可生成人类可读或 JSON 输出,以便 CI 集成。
为什么需要 Greenlight
- 避免被拒:在 Apple 之前发现关键问题——私有 API 使用、硬编码秘密、缺失 ATT 等。
- 加速部署:在本地机器或 CI 运行器上数秒完成扫描。
- 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 |
| 源码 | ``` |
| git clone https://github.com/RevylAI/greenlight.git | |
| cd greenlight && make build | |
| ``` |
安装完成后运行完整的预检扫描:
# 扫描当前目录并将结果输出至终端
greenlight preflight .
# 包含 IPA 进行二进制检查
greenlight preflight . --ipa build.ipa
# 导出 JSON 便于 CI 流水线解析
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 合规性
run: |
greenlight preflight .
greenlight preflight . --format json --output report.json
if jq -e '.summary.critical > 0' report.json > /dev/null; then
echo "发现关键问题 – 请在提交前修复"
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 的理由 |
|---|---|
| 新应用 | 在首次上传到 App Store Connect 之前验证所有代码、元数据和二进制文件 |
| 传统应用 | 在近期迁移后识别隐藏的隐私或 API 问题 |
| CI 流水线 | 在为 TestFlight 生成构建前作为合规门限 |
| 安全团队 | 扫描硬编码秘密或加密挖矿模式 |
| 持续交付 | 与 Claude 或 Codex 一起在拉取请求中自动修复问题 |
获取帮助与贡献
Greenlight 采用 MIT 许可证发布。欢迎贡献——可查看 repo 的未解决 issue 或提交 PR。文档在 README.md,并为 AI 集成提供了最小的 SKILL.md 与 codex-skill 包。
更多信息请访问 GitHub repo:
- 代码仓库:https://github.com/RevylAI/greenlight
- 文档:https://github.com/RevylAI/greenlight/blob/main/README.md
结论
预提交合规性是应用发布的无声杀手。Greenlight 通过即时、可执行的反馈,消除这一未知风险,帮助您在构建 IPA 前满足 Apple 严苛的审核准则。
只需一条命令,您即可:
- 扫描本地项目或 IPA 文件。
- 在 CI 流水线中执行合规检查。
- 与 AI 工具集成,自动修复关键问题。
- 让代码库保持健康,隐私声明保持最新,应用随时准备顺利通过 App Store 审核。
立即开始——安装 Greenlight,运行预检扫描,避免那些令人头疼的拒绝。