编辑: 在做出一些重要的新发现并且这个问题还没有任何答案之后,我对这个问题进行了大量编辑。
从历史上看/AFAIK,在关闭显示模式下保持 Mac 唤醒并且不满足Apple 的要求,只有使用内核扩展(kext) 或以 root 身份运行的命令才有可能。然而,最近我发现必须有另一种方式。我真的可以使用一些帮助来弄清楚如何在(100% 免费,无 IAP)沙盒 Mac App Store (MAS) 兼容应用程序中使用它。
我已经确认其他一些 MAS 应用程序能够执行此操作,并且看起来它们可能正在写入YES
名为clamshellSleepDisabled
. 或者可能还有其他一些技巧导致键值设置为 YES?我在IOPMrootDomain.cpp 中找到了这个函数:
void IOPMrootDomain::setDisableClamShellSleep( bool val )
{
if (gIOPMWorkLoop->inGate() == false) {
gIOPMWorkLoop->runAction(
OSMemberFunctionCast(IOWorkLoop::Action, this, &IOPMrootDomain::setDisableClamShellSleep),
(OSObject *)this,
(void *)val);
return;
}
else {
DLOG("setDisableClamShellSleep(%x)\n", (uint32_t) val);
if ( clamshellSleepDisabled != val )
{
clamshellSleepDisabled = val;
// If clamshellSleepDisabled is reset to 0, reevaluate if
// …
Run Code Online (Sandbox Code Playgroud) 我似乎无法弄清楚如何识别给定应用程序可用的权利密钥.如何查询应用程序的权利密钥?
示例:iTunes具有以下授权键:com.apple.iTunes.playerInfo,com.apple.iTunes.library.read-write,&com.apple.iTunes.playback
但如果我还不知道这一点,我怎么能从iTunes应用程序中检索这些键呢?那么第三方(非Apple)应用程序呢?如果有的话,哪里可以找到权利密钥?
提前致谢!
entitlements scripting-bridge applescript-objc appstore-sandbox