ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Greenlight配置完全手册:.greenlight.yml中如何调整规则严重性、排除目录与单行忽略技巧

2026/10/4 2:48:00 拓冰建站 浏览量
Greenlight配置完全手册:.greenlight.yml中如何调整规则严重性、排除目录与单行忽略技巧 Greenlight配置完全手册.greenlight.yml中如何调整规则严重性、排除目录与单行忽略技巧【免费下载链接】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/greenlightGreenlight 是一款面向 Apple App Store 与 Google Play 的离线合规预检扫描器提交前即可扫出代码、隐私清单、IPA/APK 中的拒审风险。它内置 24 条拒审风险规则默认全量开启——当某条规则误报或你想让 CI 门禁更贴合团队策略时只需在项目根目录放一个.greenlight.yml就能完成规则严重性调整、目录排除、单行忽略三大类配置。本文带你从零写对这份配置文件并避开所有常见报错。 配置文件在哪、何时生效文件名.greenlight.yml或.greenlight.yaml同时存在时.yml优先位置被扫描项目的根目录扫描时自动检测无需任何参数作用范围仅代码扫描codescan 规则引擎包括greenlight preflight中的 codescan 部分privacy、ipa、metadata 等扫描器不受影响配置结构只有两个顶层键rules按规则 ID 调整和ignore按路径排除。完整示例rules: hardcoded-ipv4: severity: info # 降级info | warn | critical platform-reference: enabled: false # 整条规则关闭 ignore: - vendor # 排除整个目录任意层级 - *.generated.ts # 按文件名通配排除 - src/legacy # 排除指定路径前缀️ 技巧一调整规则严重性 severity每条规则有一个默认严重性CRITICAL / HIGH / WARN / INFO用severity可覆盖。这直接影响 CI 门禁--exit-code会在出现CRITICAL 或 HIGH时返回非零退出码因此把非阻断的规则降级到info可以让流水线只被真正致命的发现卡住。rules: hardcoded-ipv4: severity: info # 默认 WARN降为 INFO不再拦截 CI仅提示三个关键注意点合法取值info、warn、critical大小写不敏感warning、high也能识别。写错会直接报错invalid severity bogus (use info, warn, or critical)。只有模式匹配类规则支持降级。像missing-privacy-keys这类按发现项各自带严重性的规则PlistKeyRule配置severity会报doesnt support a severity override——这类规则请改用enabled: false。想确认某条规则的默认级别直接看greenlight codescan的终端输出即可。 技巧二关闭整条规则 enabled确认某条规则对你们的架构不适用例如项目本来就不含社交平台登录整条关闭比逐行注释更干净rules: platform-reference: enabled: false不写enabled 保持默认开启写成enabled: true效果同默认规则 ID 必须真实存在写成not-a-real-rule会报unknown rule id常用规则 ID 速查完整列表见 internal/codescan/rules.go规则 ID检查内容hardcoded-secrets硬编码密钥、API Key§1.6uiwebview-removed使用已移除的 UIWebView§2.5.1external-payment-digital数字商品外部支付§3.1.1missing-att使用广告 SDK 却无 ATT 弹窗§5.1.2account-no-delete有注册无注销路径§5.1.1hardcoded-ipv4硬编码 IPv4 地址§2.5placeholder-content占位内容残留§2.1crypto-wallet-org-account加密钱包需组织账号§3.1.5(b) 技巧三排除目录与文件 ignoreignore接受一组通配规则匹配逻辑比很多人想象的更宽容——同一个条目会依次尝试四种匹配实现见 internal/codescan/config.go写法匹配方式示例效果vendor目录名/路径段任意层级vendor/、a/b/vendor/全部跳过*.generated.ts文件名通配api.generated.ts跳过src/legacy路径前缀src/legacy/下所有文件跳过tools/*.ts精确路径通配只匹配tools/直接子层 好消息是node_modules、.git、Pods、build、dist、DerivedData等常见噪音目录内置就跳过见 internal/codescan/scanner.go无需手动排除。ignore主要用来处理生成代码、遗留目录、第三方拷贝代码。✍️ 进阶单行忽略 greenlight:ignore不想关掉整条规则、只想静默某一行在命中行末尾或上一行的独立注释中写指令实现见 internal/codescan/rules.golet host 10.1.2.3 // greenlight:ignore hardcoded-ipv4// greenlight:ignore hardcoded-ipv4 let host 10.1.2.3使用细节裸指令// greenlight:ignore会静默该行的所有规则指定规则 ID可空格分隔多个是更好的习惯其他检查保持生效支持块注释/* greenlight:ignore */和 XML 注释!-- greenlight:ignore --指令后追加说明文字可以如// greenlight:ignore hardcoded-ipv4 内网测试地址但仅写说明、不带规则 ID不会生效注释里顺带提到greenlight:ignore字样不算指令——标记必须紧跟在注释符之后⚠️ JSON / plist 文件无法写注释例如package.json上的发现只能用.greenlight.yml的ignore或enabled: false处理️ 常见报错与快速修复配置文件采用严格模式解析拼写错误会立即报错而不是静默忽略见 internal/codescan/config.go 与 internal/codescan/config.go报错信息原因修复unknown rule id xxx规则 ID 写错运行greenlight codescan从输出中核对 IDinvalid severity xxx严重性取值非法只用info/warn/criticaldoesnt support a severity override该规则不支持降级改用enabled: falsefield xxx not found键名拼写错误rules:不是rule:enabled:不是enable:另外用--config可显式指定配置路径便于多环境共用扫描时指向不同配置定义见 internal/cli/codescan.gogreenlight codescan . --config path/to/.greenlight.yml⚡ 一页速查表需求配置降级某规则rules: { 规则ID: { severity: info } }关闭某规则rules: { 规则ID: { enabled: false } }排除任意层级的目录ignore: [vendor]排除一类生成文件ignore: [*.generated.ts]排除某路径下全部ignore: [src/legacy]静默单行某规则行尾// greenlight:ignore 规则ID静默单行全部规则行尾// greenlight:ignore裸指令记住一个原则能用单行指令就不关规则能用降级就不排除目录。把静默范围收得越小Greenlight 为你守住 App Store 与 Google Play 合规底线的能力就越完整。【免费下载链接】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),仅供参考