macOS Entitlements音频输入与麦克风

时间:2018-04-01 07:28:24

标签: macos audio-recording mac-app-store appstore-sandbox entitlements

对于macOS沙箱,有两个授权密钥: com.apple.security.device.audio-inputcom.apple.security.device.microphone。我测试了两个允许麦克风输入。他们之间有什么区别?

1 个答案:

答案 0 :(得分:2)

com.apple.security.device.microphone是沙盒授权。如果您想在沙盒应用中使用麦克风,则需要将其启用,

com.apple.security.device.audio-input是强化的运行时权利。如果要在经过强化运行时的应用程序中使用麦克风,则需要启用它。

如果您的应用同时经过沙箱和加固,则需要同时启用两者。

在这种情况下,沙箱和加固提供了重叠的保护。

在沙盒应用中,如果您没有com.apple.security.device.microphone权利,则您的应用将无法访问麦克风。

在强化的应用程序中,如果您没有com.apple.security.device.audio-input的权利,则您的应用程序将无法访问麦克风或使用Core Audio的任何音频输入,

This为沙盒化和强化之间的关系提供了很好的解释。

  

我们可以在Xcode 10中看到,强化运行时的“资源访问”部分与“应用程序沙箱”有很多重叠,而“运行时例外”部分具有强化运行时所独有的功能。重叠的原因是什么?沙盒主要是为App Store设计的,而强化运行时则主要是为Developer ID设计的。我刚刚详细解释了这两种技术如何可以应用于同一应用程序,并且不依赖于分发方法,但是在不久的将来,大多数应用程序可能最多使用以下两种之一:Mac App的沙箱存储应用程序,并对经过公证的开发人员ID应用程序进行强化。这就是为什么存在重复的权利。