iTunes 连接:NSMicrophoneUsageDescription 键丢失但没有麦克风使用

Posted

技术标签:

【中文标题】iTunes 连接:NSMicrophoneUsageDescription 键丢失但没有麦克风使用【英文标题】:iTunes connect : NSMicrophoneUsageDescription key missing but no microphone usage 【发布时间】:2018-03-06 10:33:19 【问题描述】:

我尝试在 iTunes Connect 上上传我的应用程序,但出现以下错误:

缺少 Info.plist 键 - 此应用尝试在没有使用说明的情况下访问隐私敏感数据。应用的 Info.plist 必须包含一个 NSMicrophoneUsageDescription 键和一个字符串值,向用户解释应用如何使用这些数据。

它一直工作到现在。我没有添加新库。

我对以下模块的研究得出结论: - 拍照(无视频),但 2 年没有更新 - AVAudiosession 库,但 3 年没有更新,并且不使用 requestRecordPermission

而且我不使用 Instabug 或 iMessage。

我的应用不需要麦克风,我怎么知道我真的不用它? 或者如何找到需要NSMicrophoneUsageDescription 键的库?

(我不想将密钥添加到我的 info-plist,我认为向用户询问我不使用/不想使用的东西是不正常的)

【问题讨论】:

【参考方案1】:

在提交期间扫描您的二进制文件是否存在符号 - 在这种情况下为 AVAudioSession requestRecordPermission:

当你发现你得到一个类似上面的错误。

你可以

只需添加密钥,因为在您实际请求使用麦克风的权限之前不会提示您的用户。

查找您的哪个框架包含该符号(您可以使用stringsnmotool 等工具在您的构建文件夹框架二进制文件中递归搜索,grep 上述符号并在找到时删除框架)。

【讨论】:

好的,但我不使用 requestRecordPermission。我将 AVAudioSession 用于网络广播。所以麦克风没用。为什么现在?因为这个模块几年没更新了? 没关系。只要符号出现在您的应用程序二进制文件或任何框架中(无论是否使用),您就需要定义密钥。如前所述,不用担心您的用户在不使用麦克风时会被提示权限 - 我们不在 android 上。 好的,谢谢,在将您的答案标记为正确之前,为什么现在而不是之前? NSMicrophoneUsageDescription 是自 iOS 10 以来引入的一项相对较新的检查。由于您所说的几年没有更新该应用程序,因此您以前的版本是基于以前的 SDK 构建的? 一个月前发布了,但是模块有3年了,SDK版本是一样的

以上是关于iTunes 连接:NSMicrophoneUsageDescription 键丢失但没有麦克风使用的主要内容,如果未能解决你的问题,请参考以下文章

在 iTunes 连接中添加测试仪

iTunes 连接问题

iTunes 连接“测试用户”不适用于应用内购买

iTunes 连接时区混乱

预发布 Apple iTunes 连接错误

如何为 iTunes 连接提供强制更新?