对于macOS沙箱,有两个授权密钥:
com.apple.security.device.audio-input
和com.apple.security.device.microphone
。我测试了两个允许麦克风输入。他们之间有什么区别?
答案 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应用程序进行强化。这就是为什么存在重复的权利。