我有OSX代理,它应该从放置在项目中的p12文件中读取数据。 Security.framework有一个SecPKCS12Import函数可以做到这一点。问题是,如果我在安装到适当的文件夹后立即在root下运行代理,则以下函数不返回证书的数据(& items参数),但返回状态错误“0”。
sudo launchctl load com.myagent.agent.plist
但在root下运行OSX重启代理启动后工作正常。
如果在用户权限下运行代理,即使没有重新启动OSX也能正常工作。
这是一个plist文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UserName</key>
<string>root</string>
<key>StandardErrorPath</key>
<string>/usr/local/myagent/agent.log</string>
<key>StandardOutPath</key>
<string>/usr/local/myagent/agent.log</string>
<key>Label</key>
<string>com.myagent.agent</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/agent.app/Contents/MacOS/agent</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
我使用的是OSX 10.8
如何解决上述问题?