2

如何更改 Mac OS X 上 install4j 的代码签名对哪些文件进行签名?

具体来说,我的应用程序的所有文件(包括它的 jar 文件)都没有签名。这完全违背了代码签名的目的。所以,我想解决这个问题。

我也想在 Windows 上做同样的事情,但可能已经正确处理了(我还没有检查过)。

4

2 回答 2

1

签名的目的并不是所有可以以任何方式签名的东西都被实际签名。

如果可执行文件已签名, Windows会减少 UAC 对话框并以不同的警告级别显示它们。每个请求提升权限的启动器都必须签名,以便包括安装程序、卸载程序和可能的启动器。

Mac OS X有一个“看门人”,用于检查从 Internet 下载的应用程序包是否已签名。如果没有,它将不允许您直接运行它。这就是必须对安装程序应用程序包进行签名的原因。Gatekeeper 不关心安装程序安装的任何应用程序包,因此默认情况下它们没有签名。这主要是一件好事,因为否则您将无法在安装后修改启动器的 Info.plist 文件。

如果您使用授权来访问 Mac OS X 上的特定功能,您的启动器也需要签名。您可以在启动器向导的“可执行信息->Mac OS X 选项”步骤中指定授权文件,并在 Mac OS X 媒体文件向导的“安装程序选项”步骤中选择“签署已安装的启动器”。

install4j 不关心签署 JAR 文件。如果出于某种原因需要此功能,则必须在构建过程中执行此操作。

于 2013-06-21T08:32:49.533 回答
0

@Ingo,对于应用程序可能需要的某些受限功能(例如打开网络套接字),启动器签名也是如此。我还认为我应该提到“安装程序选项”步骤中的“签署已安装的启动器”在“Mac OS X 单一捆绑”媒体类型上不可用,因此如果用户需要启动签名,则需要选择其他媒体类型。

这在文档中并不清楚,所以希望这个评论可以节省一些时间。

于 2015-01-20T18:41:11.197 回答