应用程序被拒绝:查找访问隐私敏感数据的 (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/GoogleCast.framework/GoogleCast
,它列出了对AVAudioSession
的引用。
【讨论】:
【参考方案2】:在您应用的 plist 中,添加“NSMicrophoneUsageDescription”并为其添加说明。
【讨论】:
这不是问题以上是关于应用程序被拒绝:查找访问隐私敏感数据的 (cocoapod) 库的系统方法的主要内容,如果未能解决你的问题,请参考以下文章
由于缺少 NSCalendarsUsageDescription,iTunes Connect 上传被拒绝,二进制文件无效
xctest 此应用试图在没有使用说明的情况下访问隐私敏感数据
Phonegap 应用 NSCalendarsUsageDescription 错误:此应用尝试在没有使用说明的情况下访问隐私敏感数据