我想在将 USB 设备插入 Mac OS X 系统时启动特定应用程序。我已经按照这个 SO post中给出的食谱进行操作。但似乎LaunchEvents
无法识别密钥:当我重新启动系统时,我在控制台上看到以下消息:
com.apple.launchd.peruser.501[173] (com.example.program) Unknown key for dictionary: LaunchEvents
我正在运行 OS X 10.6.8,并且此版本的 OS X 完全有可能不支持 xpc_events。如果是这种情况,我的替代方案是什么?
(作为第二个较小的问题:有没有办法在不重新启动系统的情况下强制重新读取我的 .plist 文件?它会加快调试时间!)
全文~/Library/LaunchAgents/com.example.plist
如下。(请注意,为了调试,我只是尝试使用 /usr/bin/open 启动 Terminal.app。一旦我完成了这么多工作,我将换入我的真实程序。)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.program</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>/Applications/Utilities/Terminal.app</string>
</array>
<key>LaunchEvents</key>
<dict>
<key>com.apple.iokit.matching</key>
<dict>
<key>com.apple.device-attach</key>
<dict>
<key>idProduct</key>
<integer>8963</integer>
<key>idVendor</key>
<integer>1659</integer>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>IOMatchStream</key>
<true/>
</dict>
</dict>
</dict>
</dict>
</plist>