如何调整在 macOS 中启动守护程序/代理的登录项列表中显示的内容?

问题描述 投票:0回答:1

我的启动守护进程(和启动代理)在 macOS 系统范围内安装。我使用放置在以下文件中的以下 plist 文件(例如,用于守护程序)

/Library/LaunchDaemons/com.example.MyDaemon.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>MachServices</key>
    <dict>
        <key>com.example.MyDaemon.launch.agent</key>
        <true/>
    </dict>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>com.example.MyDaemon</string>
    <key>Program</key>
    <string>/Library/PrivilegedHelperTools/com.example/MyDaemon</string>
    <key>ProgramArguments</key>
    <array>
        <string>-d</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

安装上面的 plist 时,或者当用户重新登录时,macOS 会显示这个不太友好的弹出窗口:

然后如果我转到设置 -> 常规 -> 登录项,它也会显示在那里:

我知道这是出于安全原因显示的。但我很好奇:

  1. 我可以提供显示的应用名称吗?现在,我什至不确定这个名字是从哪里来的。例如,现在弹出窗口显示:

“MyDaemon”是一个可以在后台运行的项目。您可以在登录项设置中进行管理

我可以在弹出窗口中将“MyDaemon”更改为更好的描述吗?

  1. 登录项中的小文字说:

来自身份不明的开发者的项目。

我注意到其他项目没有这个消息。我做错了什么?

  1. 我还注意到登录项目列表中的其他项目不会调用弹出窗口,就像我的项目一样。例如,还有不显示该弹出窗口的 Zoom。为了让我的项目显示该弹出窗口,我做了什么不同的事情?
macos security plist daemon launch-daemon
1个回答
0
投票

1。启动项的名称(和图标)

获得它的通常方法是使用服务管理 API 来安装守护程序,因此

SMAppService
SMJobBless
,具体取决于操作系统版本。然后它从嵌入它的应用程序继承图标和名称。

你也可以通过给你的守护程序二进制文件一个 Info.plist 来实现类似的东西,例如通过将它嵌入到二进制文件的

__info_plist
__TEXT
部分或者将它放在一个包中或将它变成一个应用程序捆。然后设置
CFBundleDisplayName
CFBundleName
其他听起来可能的键,看看这是否会改变它的显示方式。

2。 “身份不明的开发者

“身份不明的开发者”部分是由于缺少(有效的)代码签名。如果您的守护程序二进制文件已使用开发者 ID 证书正确签名并经过公证(或通过应用商店分发),您的应用名称(见上文)或您的开发者帐户名称将改为显示。

3。弹窗

例如,还有 Zoom 不显示该弹出窗口。

Zoom 通过系统管理 API 安装它的助手,调用 API 时需要显式授权,也许在这种情况下不需要双重选择?

© www.soinside.com 2019 - 2024. All rights reserved.