应用程序被拒绝:查找访问隐私敏感数据的 (cocoapod) 库的系统方法

Posted

技术标签:

【中文标题】应用程序被拒绝:查找访问隐私敏感数据的 (cocoapod) 库的系统方法【英文标题】:App rejected: Systematic way to find (cocoapod) library that accesses privacy-sensitive data 【发布时间】:2016-10-10 07:50:08 【问题描述】:

iTunes Connect 刚刚告诉我

此应用尝试在不使用的情况下访问隐私敏感数据 描述。应用的 Info.plist 必须包含 NSMicrophoneUsageDescription 键,带有一个字符串值,用于解释 用户应用如何使用这些数据。

但是,我的应用没有使用麦克风。我如何系统地找出我的哪些(cocoapods)依赖项对此负责?

有超过 20 个依赖项,我想避免手动删除依赖项(并使用它取消注释我的代码)只是为了找出其中哪一个导致拒绝,因为构建时间 + 提交 + “等待处理”需要很多时间时间。

【问题讨论】:

您能列出您正在使用的 pod 吗?您是否尝试过搜索 AVFoundation/AVAudiosession 的引用/导入? 这个问题是是否有一种 自动 方法来检测哪个 cocoapod 库需要麦克风。通过对所有依赖项进行二等分,我现在发现了哪个库负责(google-cast-sdk),但花了 1 个多小时,我想在将来避免它。 @Gereon Google-Cast-SDK 是封闭源代码,它只提供编译后的二进制文件。我还能查出它在做什么进口吗? 是的,间接通过查看共享库的符号表。在您的情况下,nm Pods/google-cast-sdk/GoogleCastSDK-Public-3.2.0-Release/GoogleCast.framework/GoogleCast 将显示对 AVAudioSession 的引用 像魅力一样工作。如果您将此作为答案发布,我可以接受。 【参考方案1】:

对于闭源 Pod,使用 nm 显示共享库的符号表。在这种情况下,命令将是nm Pods/google-cast-sdk/GoogleCastSDK-Public-3.2.0-Release/Goog‌​leCast.framework/Goo‌​gleCast,它列出了对AVAudioSession 的引用。

【讨论】:

【参考方案2】:

在您应用的 plist 中,添加“NSMicrophoneUsageDescription”并为其添加说明。

【讨论】:

这不是问题

以上是关于应用程序被拒绝:查找访问隐私敏感数据的 (cocoapod) 库的系统方法的主要内容,如果未能解决你的问题,请参考以下文章

由于缺少 NSCalendarsUsageDescription,iTunes Connect 上传被拒绝,二进制文件无效

xctest 此应用试图在没有使用说明的情况下访问隐私敏感数据

Phonegap 应用 NSCalendarsUsageDescription 错误:此应用尝试在没有使用说明的情况下访问隐私敏感数据

Xamarin 表单:iOS 应用程序被应用商店审核团队拒绝,并出现缺少 Info.plist 键的问题

如何确定哪些框架触发了对隐私敏感的 .plist 问题

应用程序在 5 被拒绝。 1.1 法律:隐私 - 数据收集和存储