我有一个应用程序,其捆绑资源中包含第三方可执行文件。我曾经在发布阶段对应用程序进行签名并在 Mac App Store 之外分发。一切皆好。在我更新第三方可执行文件后,一旦应用程序照常签名并从网站下载到 mac,OS X 就会显示警报“应用程序无法打开,因为无法确认开发者的身份”。
我尝试在签署应用程序之前签署第三方可执行文件:没有什么区别。 如果我用旧版本替换新的第三方可执行文件(退出并重新下载) - 应用程序警告不会显示,一切都很好。
“codesign -dv app”显示带有旧版或新版第三方可执行文件的签名应用程序包的合理相同输出。
应用程序已使用有效的 Mac 开发者 ID 进行签名。
最佳答案
检查 bundle 中的所有二进制文件是否都没有引用/usr/bin 或/System 之外的库。 在我们的例子中,我们有一个带有绝对路径的路径,GateKeeper 不允许它运行。 codesign --verify 没用。
您可以使用以下命令: otool -L 二进制路径
如果您在/System 或/usr/bin 之外看到任何依赖项 - 删除它们
关于objective-c - OS X - 应用程序无法打开,因为当 bundle 包含新版本的第三方可执行文件时无法确认开发人员的身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53907494/