对于OS,我在DMG中分发我的Java应用程序。自山狮发布以来,打开该应用程序将提供以下错误信息:
应用程序名称被损坏,无法打开。您应该弹出磁盘映像。
显然,修复方法是对.app文件进行签名所以我读了代码签名指南。除了的重要问题之外,一切似乎都很简单--如何将其集成到我的一键构建过程中。
在所有平台上构建我的产品都发生在我的Linux开发机器上。我运行一个Ant脚本,Windows安装程序、初学者EXE、Linux安装程序、OS应用程序和DMG都是构建的。因此,我想将代码签名集成到这个过程中。
Linux中是否有等同于“codesign”的内容?
发布于 2012-08-28 09:40:29
没有在Linux中对Mac应用程序进行代码签名的记录方式。
到目前为止,我找到的唯一方法是将SSH放入Mac并使用它。
另一方面,根据@Steve McLeod (https://stackoverflow.com/a/55906962/28190),安装程序包install4j确实提供了以下功能:
在Windows和Mac 上的集成代码签名。在“常规设置”部分,install4j现在有一个“代码签名”选项卡,您可以在该选项卡中为Windows和Mac配置代码签名证书。代码签名将应用于相应媒体文件中的所有启动程序和安装程序应用程序。代码签名的实现是跨平台的,因此您可以通过Linux构建服务器对Windows和Mac媒体文件进行签名。
所以这在技术上一定是可能的。
发布于 2012-11-08 08:22:10
您可以通过仅对应用程序的JavaApplicationStub和info.plist进行签名来解决这一问题,并将“参考资料”文件夹排除在签名之外。然后,您必须更改您的构建过程,以使用预先签名的容器。当然,这不是协同设计的意义,但它会奏效的;-)
要实现这一点,请执行以下步骤:
ResourceRules.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>rules</key>
<dict>
<key>^Resources/</key>
<false/>
<key>^version.plist$</key>
<true/>
</dict>
</dict>
</plist>
发布于 2019-04-29 15:59:48
我使用一个名为install4j的产品为我的应用程序创建DMG文件。它在DMG文件中正确地对应用程序进行签名,并且可以从操作系统的macOS之外进行签名。
不过,警告: install4j不是免费软件,实际上相当昂贵。
https://stackoverflow.com/questions/11736368
复制相似问题