macOS Mojave 找不到 /var/db/DetachedSignatures 和 Swift 4

macOS Mojave cannot find /var/db/DetachedSignatures with Swift 4

我在 High Sierra 上没有这样的错误,现在在 Mojave 上我的应用程序完成 Swift 4 发出了这个错误。当我尝试通过调用获取软件信息时会发生这种情况: /usr/sbin/system_profiler SPApplicationsDataType

我的应用程序不会失败并且可以运行,但我注意到它会在 运行:

时暴露此错误

system_profiler[2052:52918] [logging-persist] os_unix.c:42249: (0) open(/var/db/DetachedSignatures) - Undefined error: 0

我想这与代码签名有关,但我不知道如何处理,可能是一个错误,因为 /var/db

中没有任何名为 DetachedSignatures 的文件

我遇到了同样的问题,我从其他人的 MacBook 上复制了 DetachedSignatures 文件并将其放在我的 iMac 上的 /var/db 路径下。它解决了这个问题。不知道为什么有些 mac 就是没有这个 DetachedSignatures 文件。网上有用的解释不多

正如@lzl 所说,我向某人询问了他们的文件,但他们告诉我该文件是 0 字节。我在那个路径上触摸了一个文件,我的警告消失了。

os_unix.c:37227: (21) seekAndRead(/var/db/DetachedSignatures) - 是一个目录

sudo touch /var/db/DetachedSignatures

这解决了我机器上的问题。

这似乎是在某些操作期间由安全框架记录的;当我的应用程序调用 SecKeyGeneratePair 时,我总是看到它。由于一切正常,我认为这只是噪音。 (还有其他例子;Apple 的安全工程师似乎不愿意在他们的生产代码中留下嘈杂但无害的日志消息。)

我不建议尝试创建 DetachedSignatures 文件!它显然被 OS 用于某些用途,只是将空文件推到那里,或者从其他地方复制的文件,可能会在以后引起问题。