C# 无法为macOS的使用对.net核心应用程序进行公证

C# 无法为macOS的使用对.net核心应用程序进行公证,c#,.net-core,notarize,dotnet-publish,C#,.net Core,Notarize,Dotnet Publish,我正在尝试公证我的.net核心应用程序在MacOS设备上运行,当我公证它时,我得到的错误是 可执行文件未启用强化运行时 如果我将--options=runtime标志添加到签名操作,我的控制台应用程序将停止工作。我在dotnet文档中发现,您必须向应用程序主机添加以下权利 com.apple.security.cs.allow-jit com.apple.security.cs.allow-unsigned-executable-memory com.apple.security.cs.all

我正在尝试公证我的.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
但是我不知道在哪里添加它们,我尝试使用以下内容向我的输出目录添加一个authentications.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>

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

但还是失败了。这是我必须添加到发布过程中的内容吗?

解决方案是在签署代码时使用authorights.plist:

codesign --timestamp --sign "CERTNAME" FILENAME --options=runtime --no-strict --entitlements entitlements.plist