iOS提审5.1.1频繁被拒

iOS提审5.1.1频繁被拒?小蟹iOS隐私预检工具本地IPA静态扫描实践

仓库地址:https://github.com/confuse-ios/ios-privacy-scanner

前言

做iOS开发的同学大概率都踩过 Guideline 5.1.1隐私合规 的坑。很多时候业务本身没有违规,但因为二进制实际调用行为和PrivacyInfo.xcprivacy、App Store Connect隐私营养标签声明不一致,上传IPA之后直接被机审拦截驳回。

苹果会在上传阶段直接对Mach‑O二进制做静态扫描,不需要运行App,会解析App本身以及嵌入的第三方SDK,比对代码行为和隐私清单、表单声明是否匹配。

同时注意:5.1.1隐私扫描、4.3二进制相似度扫描、2.3.1私有API扫描,是三套独立并行风控,三者不能互相替代

以往我们只能上传之后被动等待苹果返回驳回邮件,再回头排查问题,来回反复提审,耗费大量时间。今天介绍开源项目小蟹 iOS 隐私预检,可以在本地离线完成IPA隐私合规静态预检,提前发现隐私合规风险,降低5.1.1驳回概率。

一、苹果5.1.1机审重点扫描哪些内容?

苹果机审重点核查三类证据,也是我们开发过程高频踩坑点:

类别 说明
Required Reason API 文件时间、磁盘空间、用户默认值、键盘列表等接口,未填写使用理由
追踪与设备标识 IDFA追踪接口缺少ATT授权弹窗,隐私表单未做对应披露
第三方数据收集 SDK内置采集逻辑,没有在隐私清单、隐私营养标签中声明

高频驳回场景:

  1. 项目缺失PrivacyInfo.xcprivacy隐私清单文件
  2. 第三方SDK采集行为未做隐私声明
  3. 使用IDFA却没有集成ATT授权弹窗
  4. Required Reason API调用没有填写对应的使用理由

很多跨端项目(Flutter、Unity、Cocos、Uni‑App)尤其容易中招,底层插件、引擎内置SDK会隐式调用采集接口,业务层源码完全看不到,只有分析IPA二进制才可以发现问题。

二、小蟹iOS隐私预检工具简介

小蟹iOS隐私预检是本地离线IPA隐私合规扫描器,IPA文件不会上传到外部服务器,全部分析工作在本机完成。把苹果机审的一致性校验逻辑前置到本地,提审前自查二进制风险点。

✨核心能力

  1. 本地离线零上传:IPA不离开本机,保障包体安全
  2. Mach‑O静态二进制分析:识别敏感API、追踪接口、内嵌第三方SDK
  3. 合规缺口对照检查 :校验权限文案、Background Modes能力、PrivacyInfo.xcprivacy完整性
  4. 知识库+可选AI复核:内置SDK/API/权限规则库,支持OpenAI兼容接口做敏感词真阳性判断,减少误报
  5. 导出HTML合规报表,方便开发人员逐条整改核对

工具界面模块包含:扫描控制台、模型配置、知识库、使用说明、关于。

📋完整扫描流程

  1. 导入IPA包
  2. 本地二进制解析分析
  3. 静态初筛风险项
  4. 结合知识库/AI做风险校验
  5. 结果预览与人工校正
  6. 导出HTML合规报告

扫描结果支持多维度筛选:合规风险、SDK、敏感API、能力授权、权限、Background Modes、隐私清单、敏感词等维度快速过滤问题项。

⚠️重要误区:混淆不能解决5.1.1隐私合规

很多开发者会有误解,认为代码混淆加固就可以规避5.1.1审核。这里要明确区分两者职责:

  • 隐私合规整改 → 解决5.1.1隐私驳回
  • 混淆加固 → 主要处理4.3/2.3.1二进制特征风控

混淆只能修改类名、方法名、字符串特征,降低二进制指纹,不能抹除二进制中真实存在的敏感API调用,静态扫描依旧可以识别。

正确顺序:先自查补齐隐私清单、对齐隐私声明与ATT弹窗,完成5.1.1整改;如果有马甲包、二进制指纹风险,再按需开启混淆加固,不要把混淆当作绕过5.1.1的手段。

三、跨端项目高频坑汇总

1. Flutter

插件会引入原生分析、设备信息相关代码,仅仅扫描Dart源码完全不够,必须针对最终产出的IPA二进制扫描,逐条梳理各个插件的数据收集行为。

2. Unity / Cocos

广告、统计、推送SDK是重灾区。引擎打包会合并大量静态库,人工很难定位采集入口。优先补齐隐私清单和声明,再处理二进制指纹相关问题。

3. Uni‑App

批量打包复用同一套SDK、原生模块,容易同时触发5.1.1与4.3风控。每一个业务包都需要独立配置隐私清单与隐私政策,不能共用一套配置

四、推荐提审前完整流程

建议CI出包之后,把该工具加入提审前检查环节,不要等到上传App Store Connect才暴露隐私问题:

  1. 使用小蟹iOS隐私预检扫描IPA,梳理敏感API、追踪接口、第三方SDK列表
  2. 完善PrivacyInfo.xcprivacy隐私清单,给Required Reason API填写合规理由
  3. 核对App Store Connect隐私营养标签、App内隐私政策链接、ATT授权弹窗
  4. 如果有多包指纹关联风险,再执行混淆加固
  5. 走TestFlight外部测试,完成Beta预审,提前拦截5.1.1问题

iOS隐私审核核心原则:二进制真实行为必须和隐私声明保持一致,不是简单关键词检索

五、安装运行说明

运行环境:macOS 12.0+

仓库下载应用包路径:downalod/crab‑privacy.zip

shell 复制代码
#解压
unzip downalod/crab-privacy.zip
#打开App
open crab-privacy.app

首次打开遇到Gatekeeper安全拦截:前往「系统设置 → 隐私与安全性」允许运行,或者执行命令去除隔离属性:

shell 复制代码
xattr -cr crab-privacy.app

应用名称:小蟹 iOS 隐私预检(crab‑privacy),支持接入OpenAI兼容模型,本地大模型例如qwen2.5‑7b也可以接入做AI辅助复核。

六、仓库文件说明

路径 说明
downalod/crab‑privacy.zip macOS客户端程序包
yinsi.jpeg 扫描控制台截图

总结

5.1.1隐私驳回非常消耗研发和提审时间,被动等待苹果审核反馈效率很低。借助本地IPA静态扫描工具,在本地模拟机审逻辑,提前发现二进制层面的隐私风险点,可以大幅降低提审被打回的概率。

提示:工具是辅助自查手段,不能保证100%过审,最终以苹果官方审核结果为准。

参考仓库https://github.com/confuse-ios/ios-privacy-scanner

参考文档appstore-5.1.1拒审核


标签:#iOS #AppStore审核 #5.1.1 #隐私合规 #IPA扫描

相关推荐
麒麟马20 小时前
Swift 扩展归纳---Array (一)
ios·swift
2501_9151063221 小时前
Swift 4开发环境设置教程:xCode安装与Playground入门
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
欢迎来到祖安!21 小时前
企业微信 iPad 协议私有化方案:毫秒级事件推送与高并发承载实践
ios·企业微信·ipad
2501_916007471 天前
使用Apple Dashboards显示和自定iOS应用性能指标与数据可视化指南
android·ios·小程序·https·uni-app·iphone·webview
用户38034165882971 天前
YUV→RGB 的颜色范围与矩阵:画面发灰的真凶
ios
深念Y1 天前
黑苹果P400-直通显示折腾全记录-20260907
macos·ios·系统·黑苹果·苹果·英伟达·p400
2501_915921431 天前
抓包工具对比:Charles、TraceEagle、Wireshark、Fiddler 与 Proxyman
网络协议·计算机网络·网络安全·ios·adb·https·udp
9765033351 天前
iOS 上架/审核 4.3a全面解读-最新
flutter·ios·objective-c·uniapp
2501_915106321 天前
Flutter iOS混淆打包详细教程与步骤
android·flutter·ios·小程序·uni-app·iphone·webview