通过macOS Mojave,Apple引入了对Harded Runtime和Notary服务的支持。 这两项服务旨在增强macOS上的应用程序安全性。 最近,该
公司表示 :
从macOS 10.14.5开始,所有新的或更新的内核扩展以及所有首先使用Developer ID掌握发行版的开发人员的程序都必须通过Hardened Runtime和Notary进行身份验证才能运行。 默认情况下,macOS的未来版本将要求所有程序进行认证。
今天,我们将帮助您从Xamarin的角度了解新的要求。

macOS的安全性
- 代码签名-在macOS GateKeeper中,需要使用Apple开发者帐户中的密钥对应用程序包进行加密签名。
- 自macOS Lion(10.7)起,这是必需的。
- 第一次很难获得正确的密钥和证书,因此请参阅Xamarin.Mac应用程序签名文档 。
- 强化运行时是macOS Mojave(10.14)中引入的第二级安全性。 当使用附加标志对代码进行签名时,Cocoa运行时将对运行的应用程序施加一些限制。
- 例如,一些限制包括拒绝执行自我修改代码或下载未签名的动态库。
- 可以使用特殊权限来禁用每种限制。
- 公证服务是macOS Mojave(10.14)中也引入的第三级安全性。 这是一种代码扫描服务,可扫描您的软件中是否包含恶意内容。 要通过公证扫描,您的应用程序必须已经在Hardened Runtime中进行了测试。
如何开始
要开始为这些新要求准备应用程序,请按照下列步骤操作:
设定权利
在我们为新选项实现IDE支持之前,您必须手动完成两个步骤:
- 在文本编辑器中打开Xamarin.Mac .csproj应用程序,然后添加
到发布部分。 - 在文本编辑器中打开文件entitlements.plist并添加

启动您的应用程序并进行测试。 如果发生故障,您可能需要Apple的
其他权利 。
确保申请
要进行认证,您需要执行两个步骤:
- 将程序集上载到公证服务
- 将票证附加到应用程序
一切准备就绪! 如果您对此过程有任何反馈,我们将很高兴收到您的来信。 电子邮件david.ortinau@microsoft.com或
在GitHub上添加评论 。