App Nap 机制会降低后台无交互应用的资源占用以省电,需按 Bundle ID 为特定应用禁用(如 defaults write com.tencent.xinWeChat NSAppSleepDisabled -bool YES),重启应用后生效,并可通过活动监视器验证。

MacOS 的 App Nap 机制会在应用退到后台且无用户交互时自动降低其 CPU 占用、定时器精度和网络活动,以节省电量。但有些应用(比如下载工具、音乐播放器、远程同步软件)需要在后台持续运行,这时就需要针对性地配置,而不是一刀切地全局关闭。
确认目标应用的 Bundle ID
禁用 App Nap 必须知道应用的唯一标识符(Bundle ID),否则命令无效。常用方法有:
- 打开终端,执行:mdls -name kMDItemCFBundleIdentifier /Applications/xxx.app(把 xxx 替换为应用名,如 VLC、WeChat)
- 或直接查看应用包内容:右键点击 .app →「显示包内容」→ 打开 Contents/Info.plist,查找 CFBundleIdentifier 字段值
- 常见例子:微信是 com.tencent.xinWeChat,VLC 是 org.videolan.vlc,Chrome 是 com.google.Chrome
为单个应用禁用 App Nap
执行终端命令即可,无需重启系统,只需重启该应用生效:
- 输入命令:defaults write com.tencent.xinWeChat NSAppSleepDisabled -bool YES
- 如果提示“找不到该域”,说明 Bundle ID 不准确,可尝试用可执行文件名替代(如 defaults write WeChat NSAppSleepDisabled -bool YES)
- 完成后,完全退出微信(右键程序坞图标 →「退出」),再重新打开
- 验证是否生效:打开「活动监视器」→ 切换到「能耗」标签页 → 找到微信进程 → 查看「App Nap」列是否显示为「否」
恢复默认行为或临时调试
若后续想让某应用重新接受 App Nap 管理,或仅在开发阶段临时绕过:
- 恢复默认:执行 defaults write com.tencent.xinWeChat NSAppSleepDisabled -bool NO,再重启应用
- 开发调试时,可在 Xcode 的 Scheme → Run → Arguments → Environment Variables 中添加:NSAppSleepDisabled = YES,这样只影响当前调试会话,不改系统偏好
- 注意:修改后不会立即反映在已运行进程上,必须重启对应应用才能生效
避免误操作的小提醒
App Nap 设置保存在用户级 plist 文件中(~/Library/Preferences/xxx.plist),不影响其他用户;也不建议对所有应用都禁用——这会抵消 macOS 的节能设计,尤其对笔记本电池续航有明显影响。优先只处理真正需要后台活跃的少数几个应用即可。


















