macos - Mac DMG 奇怪 - 签名和 "damaged"应用程序

标签 macos dmg osx-gatekeeper

我的 Gatekeeper 设置是“App Store 和 Identified Developers”

我有一个带有签名应用程序的 DMG。

当我安装 DMG 并在本地运行时,它可以工作。
当我将相同的 DMG 上传到我们的服务器(通过 http)、下载它(通过 http)、安装它并尝试运行该应用程序时,我收到一个弹出窗口,说我的应用程序“已损坏且无法打开。您应该移动它到垃圾箱。

我不知道是怎么回事。同一个文件如何在本地正确运行,但在上传和下载时它已损坏?服务器没问题,我们公司的其他人从它上传和下载应用程序都很好。

我错过了什么吗?

最佳答案

我很高兴你发现了你的问题。如果其他人发现这篇文章在搜索损坏的 DMG,我想添加另一个可能的解决方案:

除了签署 .app 包:
codesign -f -s "Developer ID Application: Your Dev ID Here" -v "Your App.app"
您还应该对创建的 DMG 进行签名:
codesign -f -s "Developer ID Application: Your Dev ID Here" -v YourProgram.dmg
我没有在 dmg 文件路径周围加上引号,因为 dmg 名称中不太可能有空格。如果这样做,请不要忘记在命令行中对它们进行转义,或者将文件路径用引号括起来。

关于macos - Mac DMG 奇怪 - 签名和 "damaged"应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458027/

相关文章:

python - 如何加载 dylib 文件作为 CPython 扩展?

node.js - 在 MAC 上安装 bcrypt

macos - 以编程方式添加应用程序图标以停靠安装

sql - 无法打开库 '/usr/local/lib/libmsodbcsql.17.dylib'

macos - 如何从货币代码中获取 "locale"?

macos - 构建 .dmg 包需要 Apple 开发者 ID

xcode - 我需要 Apple Developer 帐户吗?

objective-c - 如何在 Xcode 上为第 3 方 CLI 进行代码设计和启用强化运行时?

macos - 我如何知道我的 OS X 应用程序使用哪个 Gatekeeper 签名?

ios - 我的内核扩展是否为 Yosemite 正确签名?