什么是 CFErrorDomainLaunchd 错误 2?

Mik*_*ord 5 macos drivers launchd

我在任何标题中都找不到 CFErrorDomainLaunchd。我使用 find 命令来 grep 10.11 SDK 中的每个头文件。

我也试过谷歌:

site:opensource.apple.com CFErrorDomainLaunchd
Run Code Online (Sandbox Code Playgroud)

当我尝试安装我的助手应用程序及其启动 plist 时,SMJobBless 将错误传回。

我很困惑,因为昨天的安装工作得很好。我在此决定比现在更频繁地检查我的代码。

Boolean             success;
CFErrorRef          error;

success = SMJobBless(
    kSMDomainSystemLaunchd,
    CFSTR("com.frescologic.FL2000.Uninstaller.UninstallerHelper"),
    self->_authRef,
    &error );     <-- This is CFErrorDomainLaunchd error 2
Run Code Online (Sandbox Code Playgroud)

我永远欠你的债。

我正在开发 - 或试图开发 - 驱动程序的卸载程序。它还将卸载用户空间程序以及 OS X 用于启动或停止该用户空间程序的 LaunchAgent plist。

小智 5

这通常意味着无法找到 LaunchAgent。确保有一个构建阶段来复制具有“Wrapper”类型目标和 Contents/Library/LaunchServices 子路径的 Helper。还要确保产品名称与 plist 文件中的捆绑 ID 使用供应相匹配。

例如:

<key>SMPrivilegedExecutables</key>
    <dict>
        <key>com.keenow.HelperTool</key>
        <string>anchor apple generic and identifier &quot;com.myapp.HelperTool&quot; and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = &quot;YourTeamId&quot;)</string>
    </dict>
Run Code Online (Sandbox Code Playgroud)