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:
。
当你发现你得到一个类似上面的错误。
你可以
只需添加密钥,因为在您实际请求使用麦克风的权限之前不会提示您的用户。
查找您的哪个框架包含该符号(您可以使用strings
或nm
或otool
等工具在您的构建文件夹框架二进制文件中递归搜索,grep 上述符号并在找到时删除框架)。
【讨论】:
好的,但我不使用 requestRecordPermission。我将 AVAudioSession 用于网络广播。所以麦克风没用。为什么现在?因为这个模块几年没更新了? 没关系。只要符号出现在您的应用程序二进制文件或任何框架中(无论是否使用),您就需要定义密钥。如前所述,不用担心您的用户在不使用麦克风时会被提示权限 - 我们不在 android 上。 好的,谢谢,在将您的答案标记为正确之前,为什么现在而不是之前? NSMicrophoneUsageDescription 是自 iOS 10 以来引入的一项相对较新的检查。由于您所说的几年没有更新该应用程序,因此您以前的版本是基于以前的 SDK 构建的? 一个月前发布了,但是模块有3年了,SDK版本是一样的以上是关于iTunes 连接:NSMicrophoneUsageDescription 键丢失但没有麦克风使用的主要内容,如果未能解决你的问题,请参考以下文章