我创建了一个具有核心c++组件的框架。此框架使用第三方库,还可以请求访问麦克风。我可以使用不同的配置来构建这个框架,这些配置允许我删除麦克风访问之类的东西。这样做是为了让我可以在不同的iOS应用程序中重用该框架,其中一些应用程序需要麦克风访问,而其他应用程序则不需要。
当我在构建框架时删除了麦克风代码,生成的应用程序一直被苹果的审查过程拒绝,说我需要指定NSMicrophoneUsageDescription,即使我已经删除了所有引用iOS麦克风API的调用。框架中仍然有使用“麦克风”或“录音”这个词的代码,但这些都是我在自己的接口中定义的方法,在这种情况下,这些方法被绑定到无操作实现。我还使用以下框架进行各种音频回放。也许它们的简单包含是导致拒绝的原因?AudioToolbox、AVFoundation、CoreAudio、CoreMedia、CoreVideo、OpenAL。
不幸的是,苹果没有向我提供他们发现的细节,所以我在这里有点像在黑暗中拍摄。
根据我的研究,遇到这个问题的人最终添加了NSMicrophoneUsageDescription或调整了描述,但在我的情况下,我实际上想完全删除它。
我的设置中有没有什么可能导致问题的地方?也许OpenAL是一个危险信号,因为他们最近弃用了它?有没有什么好的工具可以对我的二进制文件执行分析,以找到可能对Apple显示为危险信号的API引用?
发布于 2019-07-23 03:19:22
如果您查看信息属性列表(https://developer.apple.com/documentation/bundleresources/information_property_list)上的苹果文档并搜索"NSMicrophoneUsageDescription",就会发现AVFoundation是与该键相关联的框架。
鉴于此,我会尝试删除代码中的AVFoundation和任何对AVFoundation的引用,然后构建应用程序。
https://stackoverflow.com/questions/57151820
复制相似问题