0

我尝试使用 SMJobBless 功能对我的应用程序进行身份验证,可以在 /Library/Fonts 上写入但无法正常工作,

if (![self blessHelperWithLabel:@"com.apple.bsd.SMJobBlessHelper" error:&error]) {
NSLog(@"Something went wrong! %@ / %d", [error domain], (int) [error code]);
} else {
//Access to this point.
/* At this point, the job is available. However, this is a very
 * simple sample, and there is no IPC infrastructure set up to
 * make it launch-on-demand. You would normally achieve this by
 * using XPC (via a MachServices dictionary in your launchd.plist).
 */
   NSLog(@"Job is available!");
   bool result = false;
   result = [[NSFileManager defaultManager] isWritableFileAtPath:@"/Library/Fonts"];
   [self->_textField setHidden:false];
}

我的应用程序打印了“Job is available”但是当我检查当局在 /Library/Fonts 上写的时候,结果是假的

请告诉我原因并解决它。

4

1 回答 1

0

SMJobBless 的想法是特权功能与主应用程序分离并在辅助应用程序中运行。

因此,在您的示例代码的情况下,您只是使用帮助应用程序来测试身份验证,而实际上,您应该执行检查路径是否可从帮助应用程序写入的特权任务,因为帮助应用程序是提供特权访问。

然后,如果您要写入字体文件夹,特权助手应用程序应该这样做,而不是您的主应用程序。

于 2013-08-05T09:53:28.667 回答