macos - 为什么“macOS 文件夹存档”没有使用 install4j 签名
问题描述
我无法弄清楚为什么归档/macOS 文件夹归档没有被 install4j 签名,即使它被指示在常规设置中“签署 macOS 媒体文件”。在构建过程中查看日志,我确实看到 DMG 已签名。签名证书很好,因为我有另一个应用程序签名没有问题,唯一的区别是媒体是installer/macOS folder。所以它签署了DMG并且没有签署里面的app文件夹?重点是什么?我肯定错过了什么。
我正在尝试为用户实现一个非常简单的流程 - 单击 dmg,将应用存档拖到应用程序并单击运行。无需安装程序。在从 Internet 下载 dmg 之前它工作得很好,Mac 认为它很危险,因为没有开发人员签名和乐趣开始......我如何使用 install4j 制作这个签名?
任何帮助是极大的赞赏。(install4j 版本为 6.1.6)
解决方案
我正在尝试为用户实现一个非常简单的流程 - 单击 dmg,将 >app 存档拖到应用程序并单击运行。
然后使用 macOS 单包存档而不是 macOS 文件夹安装程序。
所以它签署了DMG并且没有签署里面的app文件夹?
不,DMG 和所有生成的启动器都由 install4j 为 macOS 文件夹安装程序签名。
注意:对于 macOS 10.14,您需要 install4j 7.0.6+,否则签名会被报告为无效。
在评论中讨论后更新:
在您的情况下,可执行文件是一个 shell 脚本。对于 mach-o 二进制文件,codesign
macOS 上的工具将签名直接保存在二进制文件中,对于非 mach-o 二进制文件,它保存文件 Info.plist 的扩展 HFS+ 属性。即使您在 macOS 上构建,这些扩展属性也不会被 install4j 拾取,它们将在运行时丢失并且签名将无效。
恐怕唯一的出路是使用生成的启动器。
推荐阅读
- android - 在存储库空指针异常中使用 AsyncTask 进行 Android 房间查询
- python - 如何解决此 NameError: name 'clf' is not defined?
- apache-spark - 为 emr 上的“spark-submit”作业指定标记扫描 gc
- java - Apache HTTP 客户端等效于 CURL 命令来配置 shapefile
- sql - count(distinct) over (partition by... doesn't work in Oracle SQL
- python - 如何获取在我获取或发布请求到端点后发送的请求标头
- sql-server - Is a nullable foreign key workable?
- ios - Apple sandbox tester "this field is invalid" for password
- r - 无法在 Windows 10 上制作集群
- java - 从 List 中检索项目会导致 com.sun.jdi.InvocationException 错误