Macos 如何确定Gatekeeper拒绝已签名可执行文件的原因?
我们有一套多平台的命令行可执行文件和库,可以移植到Mac。文件布局为Macos 如何确定Gatekeeper拒绝已签名可执行文件的原因?,macos,code-signing,macos-catalina,osx-gatekeeper,Macos,Code Signing,Macos Catalina,Osx Gatekeeper,我们有一套多平台的命令行可执行文件和库,可以移植到Mac。文件布局为 /应用程序/ (公司文件夹)/ (我们的UI.app) (产品名称)/ 垃圾箱/ …可执行文件 解放党/ …dylibs (其他材料)/ 这是在一个DMG中发布的,该DMG与应用程序一样经过代码签名。在卡塔琳娜之前,这一切都很顺利 现在在Catalina上,我们已经对所有可执行文件、dylibs、应用程序(包括嵌套在顶级应用程序框架中的应用程序)、框架和DM本身进行了代码设计。当我们对其进行公证时,生成
- /应用程序/
- (公司文件夹)/
- (我们的UI.app)
- (产品名称)/
- 垃圾箱/
- …可执行文件
- 解放党/
- …dylibs
- (其他材料)/
- 垃圾箱/
- (公司文件夹)/
- SHA-256哈希选择
- 以Apple根CA结尾的权限条目列表
- 团队标识符条目
- 时间戳
- 运行时间:10.13.0
- 这只发生在
- 操作系统是Catalina
- 它位于/Applications文件夹下
- 在/应用程序之外(例如,在桌面上的文件夹中),这种情况有时会发生(有时它声称第一次尝试时无法加载动态库,如果稍后尝试,则会成功)
- 可执行文件取决于一个或多个DYLIB(独立的运行正常)
- 可执行文件设置了com.apple.tr
- 我曾尝试在干净文件和下载文件(即隔离xattr文件)之间混合使用“n”匹配,只有隔离可执行文件时才会出现问题;它不在乎非隔离的可执行文件是否加载隔离的动态库
- 签名操作是通过使用args“-deep--strict--timestamp--options runtime”的代码签名完成的,然后进行验证
- 编辑:我已经更新了它,包括一些强化的运行时权限,以修复另一个构建问题,但它对这个问题没有帮助
- 可执行文件通过@rpath依赖于dylibs(由otool-L报告)
- 编辑:在每种情况下,我都尝试过用@executable\u path/./lib替换@rpath,但都没有用
您始终可以在XCode中运行它,但不能单独运行,而无需删除和替换二进制文件。DYLIB是否使用与主应用相同的身份签名?是,加载失败时,控制台日志中可能会写入一些信息。公证日志是否显示了您期望的所有文件?我想在“票务内容”下面。