首页 > 解决方案 > OS X - 应用程序无法打开,因为当捆绑包包含新版本的第三方可执行文件时无法确认开发者的身份

问题描述

我有一个应用程序,它的捆绑资源中有第三方可执行文件。我曾经在发布阶段签署应用程序并在 Mac App Store 之外分发。一切皆好。在我更新了第三方可执行文件后,一旦应用程序像往常一样签名并从网站下载到 mac,OS X 会显示警报“应用程序无法打开,因为无法确认开发者的身份”。

我在签署应用程序之前尝试签署第三方可执行文件:没有任何区别。如果我用旧版本替换新的第三方可执行文件(退出并重新下载) - 应用程序警告没有显示,一切都很好。

“codesign -dv app”显示带有第三方可执行文件的旧版本或新版本的签名应用程序包的合理相同输出。

应用程序使用有效的 Mac 开发人员 ID 进行签名。

标签: objective-cmacoscode-signing

解决方案


检查你的包中的所有二进制文件是否都没有引用 /usr/bin 或 /System 之外的库。在我们的例子中,我们有一个绝对路径,GateKeeper 不允许它运行。codesign --verify 没用。

您可以使用以下命令:otool -L path_to_binary

如果您看到 /System 或 /usr/bin 之外的任何依赖项 - 摆脱它们


推荐阅读