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),仅供参考

相关新闻

RHEL 6.9忘记root密码?单用户模式+init=/bin/bash找回实战

RHEL 6.9忘记root密码?单用户模式+init=/bin/bash找回实战

RHEL系统忘记密码这事,几乎每个搞Linux运维的人都遇到过。不管你是刚入行的新手,还是天天泡在机房的老油条,总有那么几个瞬间——手一抖把root密码改错了,或者新交接的服务器根本没人知道密码,再要么就是密码过期又忘了…

2026/10/4 2:48:14 阅读更多 →
VS Code Skills 完全指南:从认识 Agent 技能到安装排错与自研

VS Code Skills 完全指南:从认识 Agent 技能到安装排错与自研

说个有意思的事:我在好几个技术群里看人聊"VS Code 使用 Skills",聊到最后总是绕回同一个问题——"Skills 到底是个啥?它装在哪?为什么我下了一堆项目,在编辑器里却找不到任何入口?"说…

2026/10/4 2:47:13 阅读更多 →
sed命令进阶指南:从流式处理到模式空间,掌握Linux文本处理的核心技巧

sed命令进阶指南:从流式处理到模式空间,掌握Linux文本处理的核心技巧

sed 大概是 Linux 命令行里被误会最深的命令之一。很多人刚接触它时,觉得不过是“用来替换文本的”,真正在生产环境处理几十万行日志、批量修改配置文件、写部署脚本时,才会发现流式处理、地址定址、多行模式、保持空间这些概念,才…

2026/10/4 2:47:13 阅读更多 →

最新新闻

反激电源RCD吸收电路设计:容值、阻值与二极管选型全解析

反激电源RCD吸收电路设计:容值、阻值与二极管选型全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 4:07:06 阅读更多 →
InceptionNext实战:图像分类从环境搭建到部署调优

InceptionNext实战:图像分类从环境搭建到部署调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 4:07:06 阅读更多 →
COMSOL锂枝晶仿真:流动耦合下的多物理场建模实战

COMSOL锂枝晶仿真:流动耦合下的多物理场建模实战

锂枝晶这个坑,做锂金属电池的人基本都躲不开。锂金属阳极的理论比容量高得诱人,但循环时锂沉积极度不均匀,枝晶一长起来,轻则库仑效率下滑,重则刺穿隔膜引发内短路,甚至起火。COMSOL里做锂枝晶仿真&#xf…

2026/10/4 4:07:06 阅读更多 →
轻任务平台的任务配额与限流设计——以帮帮星球为例

轻任务平台的任务配额与限流设计——以帮帮星球为例

背景与问题定义轻任务平台(用户领取问卷、内容创作、试玩等微任务并获取报酬)在高峰期会面临两类典型压力:其一是少数用户通过脚本或账号矩阵高频刷取高价值任务,挤压普通用户的领取机会;其二是高价值任务瞬时放量导致…

2026/10/4 4:07:06 阅读更多 →
第 6 天|IP 把数据送到机器,谁把它交给程序

第 6 天|IP 把数据送到机器,谁把它交给程序

前五篇,我们一直在追一份数据包:它离开电脑,经过路由器,一跳一跳走向服务器。 假设它终于到了。服务器上可能同时运行着网站、数据库和其他服务;网站还可能正在接待成千上万名访客。服务器怎么知道,这份数…

2026/10/4 4:07:06 阅读更多 →
插件系统深度解析:加载、激活与failed to load plugins排查指南

插件系统深度解析:加载、激活与failed to load plugins排查指南

这两天在我折腾开源播放器MusicFree时,又碰到了一串“failed to load plugins”的报错信息。点开一看,其中一条写着“web boot: 2 entries did not activate”。说实话,干这行这么多年,凡是跟plugins打交道的场景——不管是IDE里的…

2026/10/4 4:06:06 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →