macOS 10.14.5 --> 抱歉,我的 Catalina 正在隔离工作!Xcode 11.2.1
com.apple.security.cs.disable-library-validation 的行为不像记录的那样。
我的测试应用程序基于 X11 (XQuartz),因此需要来自 /opt/X11/ 和 /usr/lib/ 的库,它们的团队 ID 与我的不同。
该应用程序包含一个 C 二进制文件,它调用“winteracter”一个小的 FORTRAN 二进制文件,它显示一个 X11 窗口和对话框。在导入 Xcode 之前,“winteracter”被签名/硬化/沙盒化(继承)。它放在 Resources 文件夹中,但放在 MacOS 中没有区别。
权利如下: 主要应用:
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
<array>
<string>/opt/X11/lib/</string>
<string>/usr/lib/</string>
</array>
辅助二进制文件:
<key>com.apple.security.inherit</key>
<true/>
该应用程序成功公证(因此签名、强化和沙盒都可以) High Sierra:它可以工作。Mojave:它给出了运行时错误(控制台:error+fault+winteracter):
Library Validation failed: Rejecting '/opt/X11/lib/libXt.6.dylib' (Team ID: NA574AWV7E, platform: no) for process 'winteracter(11592)' (Team ID: P65398CN49, platform: no), reason: mapping process and mapped file (non-platform) **have different Team IDs**
这很奇怪,原因有两个:1-拒绝不同的团队 ID 与 Apple 对“禁用库验证”的描述相矛盾 2-2019 年 12 月我通过简单地使用带有“-o 运行时”的命令行代码设计获得了一个功能性公证应用程序. 这不再有效。
有什么建议吗?