【问题标题】:Why "macOS folder archive" doesn't get signed with install4j为什么“macOS 文件夹存档”没有使用 install4j 签名
【发布时间】:2018-07-22 12:40:17
【问题描述】:

我不明白为什么 install4j 没有对 archive/macOS 文件夹存档 进行签名,即使它被指示在常规设置中“签署 macOS 媒体文件”也是如此。在构建期间查看日志,我确实看到 DMG 已签名。 签名证书很好,因为我有另一个应用程序签名没有问题,唯一的区别是媒体是 installer/macOS 文件夹。所以它签署了DMG并且没有签署里面的app文件夹?重点是什么?我一定是错过了什么。

我正在尝试为用户实现一个非常简单的流程 - 单击 dmg,将应用存档拖到应用程序并单击运行。无需安装程序。在从 Internet 下载 dmg 之前它工作得很好,Mac 认为它很危险,因为没有开发人员签名和乐趣开始......我如何使用 install4j 制作这个签名?

非常感谢任何帮助。 (install4j 版本为 6.1.6)

【问题讨论】:

    标签: macos code-signing install4j


    【解决方案1】:

    我正在尝试为用户实现一个非常简单的流程 - 单击 dmg,将 >app 存档拖到应用程序并单击运行。

    然后使用 macOS 单包存档而不是 macOS 文件夹安装程序。

    所以它签署了 DMG 而没有签署里面的 app 文件夹?

    不,DMG 和所有生成的启动器都由 install4j 为 macOS 文件夹安装程序签名。

    注意:对于 macOS 10.14,您需要 install4j 7.0.6+ 否则签名被报告为无效。


    在 cmets 讨论后更新:

    在您的情况下,可执行文件是一个 shell 脚本。对于 mach-o 二进制文件,macOS 上的 codesign 工具将签名直接保存在二进制文件中,对于非 mach-o 二进制文件,它保存文件 Info.plist 的扩展 HFS+ 属性。即使你在 macOS 上构建,这些扩展属性也不会被 install4j 拾取,它们会在运行时丢失并且签名将无效。

    恐怕唯一的出路就是使用生成的启动器。

    【讨论】:

    • 我必须使用自己的启动器,这就是为什么我不能使用捆绑软件,因为它迫使我使用我无法创建的 instal4j 启动器(另一个故事,不是针对这个问题) .因此,我找到了一种解决方法,方法是制作 app 文件夹并将所有内容放入其中,以便 Mac 运行它——它确实如此。剩下的就是在 dmg 中签署该文件夹以使 Mac 满意。我在 Mac 10.13.4 上,我需要 intall4j7 来完成这项工作吗?
    • All left is to sign that folder in dmg -> 您可以对 DMG 或应用程序包进行签名,不能对普通文件夹进行签名。如果您有自己的启动器,则只需自己签名并将其添加到分发树中。
    • 据我了解,应用程序包是一个普通文件夹,不是吗?位于 DMG 中的是那个特定的包(定义结构的应用程序文件夹,以便 Mac 可以执行它的内容)。我按照 Apple 的 app bundle 规则自己创建了它。当我进行本地安装时它工作正常,这证明捆绑包的结构正常,包括启动器和就在那里的 JRE。糟糕的是,当我从我的分发站点下载相同的 DMG 时,Mac 拒绝运行它,因为它没有签名。所以,我很困惑 - 需要签署什么?以及如何?
    • 应用程序包的签名写入特定文件,没有用于签名目录的一般概念。要自己签署应用程序包,请参阅successfulsoftware.net/2012/08/30/…
    • 是的,我自己可以这样做,方法是拆开 DMG 文件,对其中的应用程序包和可执行文件进行签名,然后将其放回 DMG。我的问题是为什么 install4j 不为我做这个?我不能使用“macOS 单包存档”,因为它需要依次需要主类的启动器。我没有那个。我的应用程序由 shell 脚本引导,并启动了启动 JVM 的 Java Service Wrapper。我将尝试单独签署可执行文件,可能会通过...
    猜你喜欢
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 2012-05-21
    • 1970-01-01
    • 2018-10-29
    • 2021-10-04
    • 2023-03-28
    相关资源
    最近更新 更多