我正在尝试公证我的.net核心应用程序以在MacOS设备中运行,当我公证它时,我得到的错误
可执行文件没有启用强化运行时
如果我将--options=runtime
标志添加到签名操作中,我的控制台应用程序将停止工作。我在dotnet文档中发现,您必须向应用程序主机添加以下权限。
- com.apple.security.cs.allow-jit
- com.apple.security.cs.allow-unsigned-executable-memory
- com.apple.security.cs.allow-dyld-environment-variables
- com.apple.security.cs.disable-library-validation
但我不知道在哪里添加它们,我尝试将一个authorities.plist文件添加到我的输出目录中,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>
但它还是失败了。这是我必须添加到发布过程中的内容吗?
解决方案是在签署代码时使用authorities.plist:
codesign --timestamp --sign "CERTNAME" FILENAME --options=runtime --no-strict --entitlements entitlements.plist