DEV Community · Show DEV9/7 01:0147 分
macOS闹钟在睡眠时不响,开发者自建Matuta解决
macOS has an alarm. It doesn't ring when your Mac is asleep.
macOS Ventura起,时钟应用内置闹钟,但Mac睡眠时闹钟不响。开发者发现网上建议“关闭自动睡眠”并非真正解决方案,于是开发了免费开源的Matuta(macOS 14+)。文章重点介绍了开发中遇到的有趣问题:使用IOKit框架时,需导入IOKit.pwr_mgt子模块才能调用IOPMSchedulePowerEvent;提前两分钟唤醒Mac,以确保音频栈就绪,闹钟准时响起。该API在App Store沙盒中受限,因此采用Developer ID签名和公证分发。此外,Mac音频输出可能路由到耳机、静音或音量过低,Matuta通过三层机制确保闹钟可靠响铃。