objective-c - OS X - 应用程序无法打开,因为当 bundle 包含新版本的第三方可执行文件时无法确认开发人员的身份

标签 objective-c macos code-signing

我有一个应用程序,其捆绑资源中包含第三方可执行文件。我曾经在发布阶段对应用程序进行签名并在 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/

相关文章:

ios - 即使在删除应用程序缓存后,旧版本的图像也会出现在 iPhone 模拟器中

ios - 导出 IPA : An App ID with identifier XXX is not available

ios - 如何在iOS上的UIImagePicker中获取实际图像帧的大小?

iphone - ViewController 屏幕在启动应用程序之前下载数据库

IOS Flutter 运行 - 未连接设备

objective-c - Finder Sync Extensions 是否需要配置文件?

windows-phone-8 - "Can' t 在 Windows Phone 8 上安装公司应用程序

iphone - 允许一个 View 支持多个方向,而其他 View 则不支持 iPhone

ios - 如何避免 UITableView reloadData 中的竞争条件?

python - 在 Anaconda Jupyter Notebook (MAC OSX) 中加载 rpy2 时出现导入错误