【问题标题】:macOS Mojave cannot find /var/db/DetachedSignatures with Swift 4macOS Mojave 在 Swift 4 中找不到 /var/db/DetachedSignatures
【发布时间】:2019-03-02 13:44:43
【问题描述】:

我在使用 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) - 未定义错误:0

我猜它与代码签名有关,但我不知道如何处理,可能是一个错误,因为 /var/db 中没有任何名为 DetachedSignatures 的文件

【问题讨论】:

  • 我能够通过将输出管道重定向到“nil”来解决而不是修复,因此根本不会出现错误消息

标签: swift macos system profiler


【解决方案1】:

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

我不建议尝试创建 DetachedSignatures 文件!它显然被操作系统用于某些事情,只是将一个空文件推到那里,或者从其他地方复制一个,以后可能会导致问题。

【讨论】:

    【解决方案2】:

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

    sudo touch /var/db/DetachedSignatures
    

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 如果您无法使用另一台笔记本电脑,您有什么建议?您可以共享文件或指向示例文件吗?我查看了分离的签名和 gpg,但我不相信 --detach-sign arg 来创建 .sig 文件是我们需要在这里做的事情
        • 从“其他人的 MacBook”复制一些与签名相关的文件?是的,这可能会出什么问题。
        • 约翰下面的答案将被标记为正确的答案。
        猜你喜欢
        • 2021-04-16
        • 2019-04-27
        • 2019-03-08
        • 2019-04-07
        • 2020-07-16
        • 1970-01-01
        • 1970-01-01
        • 2019-03-11
        相关资源
        最近更新 更多