
Greenlight ipa命令全解析直接解析IPA压缩包深度检查Info.plist、隐私清单与200MB下载限制【免费下载链接】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 是一款面向苹果 App Store 和谷歌 Play 的免费开源提审前合规扫描工具其中的greenlight ipa命令可以直接解析 IPA 压缩包深度检查 Info.plist 完整性、隐私清单PrivacyInfo.xcprivacy以及 200MB 蜂窝下载限制。整个过程完全离线、无需任何开发者账号、不上传任何文件——把 IPA 丢给它几秒钟就能拿到一份附苹果审核指南条款编号的体检报告。为什么需要 IPA 二进制检查静态扫描源代码只能证明功能存在而 IPA 是最终提交给苹果审查的产物。很多被拒原因只会在打包后才暴露 二进制 plist 与 XML plist 解析不一致导致的假缺失 第三方 framework 忘记附带自己的隐私清单 包体过大影响用户蜂窝下载转化greenlight ipa就是专门盯住这一层的命令核心实现位于 internal/ipa/inspect.goCLI 层在 internal/cli/ipa.go。快速上手一条命令开始扫描greenlight ipa /path/to/build.ipa命令会输出应用名称、包体大小然后按严重级别分组展示发现项级别含义终端颜色 CRITICAL几乎必然被拒提交前必须修复红色加粗 WARN有较高被拒风险建议修复黄色⚪ INFO最佳实践提示灰色结尾会给出明确的结论GREENLIT无 CRITICAL 问题或NOT READY仍有 N 个 CRITICAL 待修复并附上耗时统计。greenlight ipa build.ipa --format json # 输出 JSON方便接入 CI 流水线深度解析 Info.plist版本、名称与用途字符串这是被拒的重灾区greenlight ipa对 Info.plist 做了真实解析二进制格式和 XML 格式都支持见 parsePlist 实现而不是简单的字符串匹配CFBundleVersion / CFBundleShortVersionString 缺失→ WARN§2.1构建号和版本号是硬性要求CFBundleDisplayName / CFBundleName 均未设置→ WARN§2.3应用没有显示名称ATS 全局关闭NSAllowsArbitraryLoads true→ WARN§1.6允许不安全 HTTP 连接苹果可能要求书面说明用途字符串Purpose String质量检查命令会逐一检查 14 类用途描述键包括相机、麦克风、相册、定位、蓝牙、Face ID、ATT 追踪、HealthKit 等完整清单见 purposeStrings声明了但内容为空→ CRITICAL§5.1.1硬性拒绝描述少于 15 个字符→ WARN§5.1.1苹果会拒绝含糊其辞的用途说明 提示写具体的描述比写一句描述重要例如拍照用于附加到客服工单远好于需要相机权限。隐私清单检查2024 年 5 月后的硬门槛自 2024 年 5 月起App Store 要求所有应用提供PrivacyInfo.xcprivacy隐私清单缺失会直接收到ITMS-91061拒绝。① 清单是否存在缺失 → CRITICAL§5.1.1。这是当前最常见的低级被拒原因之一。② 清单内容是否完整checkPrivacyManifest文件存在但内容为空→ WARN§5.1.1缺少NSPrivacyTracking是否追踪用户声明→ WARN§5.1.2缺少NSPrivacyAccessedAPITypesRequired Reason API 声明→ WARN§5.1.1未声明NSPrivacyCollectedDataTypes收集的数据类型→ INFO建议与 App Store 隐私营养标签保持一致③ 第三方 framework 逐一检查命令会扫描 IPA 内所有*.framework任何没自带隐私清单的框架都会被点名标记为 WARN并提示你升级框架版本或联系供应商。200MB 蜂窝下载限制影响转化的隐形杀手苹果规定超过200MB的应用无法直接通过蜂窝网络下载用户必须确认才能继续转化率会明显下降。greenlight ipa内置了两档阈值检查逻辑包体大小级别说明 200MB WARN§2.4超出蜂窝下载限制建议使用 On Demand Resources、应用瘦身或压缩资源150~200MB⚪ INFO正在接近蜂窝限制值得提前规划需要注意这里衡量的是压缩后的 IPA 整体大小实际按设备瘦身thinning后的分片通常更小所以把它当作上限参考即可。图标与启动画面的检查细节图标既检查散装的AppIcon*.png也识别编译进Assets.car的现代图标§2.3完全找不到图标 → CRITICAL图标只有一种尺寸 → WARN启动故事板找不到LaunchScreen/LaunchStoryboard→ WARN§4.2苹果要求使用启动故事板而非静态图IPA 结构找不到.appbundle → CRITICAL说明这不是一个有效的分发构建常见问题 FAQQ1需要登录 App Store Connect 吗不需要。greenlight ipa完全离线工作不需要任何账号、不上传任何内容。Q2为什么它没有报缺少某键因为它对二进制 plist 做了真正的解析支持 bplist00 与 XML 双格式早期字符串匹配方案在二进制 plist 上会静默失败、产生误报这个问题已在 inspect_test.go 中有专门的回归测试。Q3能在 CI 中作为卡点吗可以。用--format json输出结构化结果供流水线消费若想在提交前把整个项目源码 二进制一起卡住推荐组合使用greenlight preflight . --ipa build.ipa --exit-code总结提交前多跑一次少等一轮审核greenlight ipa的价值在于在提交之前就把二进制层面的被拒风险暴露出来Info.plist 缺键、用途字符串含糊、隐私清单缺失、framework 隐私清单遗漏、包体超限……每一项发现都附带对应的苹果审核指南条款和具体修复建议。作为开源项目MIT 协议你可以直接安装使用也可以从 cmd/greenlight/main.go 编译自己的二进制并参考 Makefile 的build目标完成构建。一句话记住Know before you submit——先扫描再提交。【免费下载链接】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),仅供参考