苹果通过macOS Mojave引入了对强化运行时和公证服务的支持。 这两项服务旨在提高macOS上的应用程序安全性。 苹果最近表示 :
“从macOS 10.14.5开始,所有新的或更新的内核扩展以及从新开发人员到使用开发人员ID分发的所有软件都必须经过公证才能运行。 在未来的macOS版本中,默认情况下,所有软件都需要经过公证。”
今天将帮助您从Xamarin的角度理解新规则。

→
博客中的这篇文章macOS的安全性
- 代码签名-在macOS上, GateKeeper要求使用Apple开发人员帐户中的密钥对应用程序捆绑包进行加密签名。
- 强化运行时 -这是macOS Mojave(10.14)中引入的第二层安全性。 通过使用附加标志进行代码签名,Cocoa运行时将对应用程序运行施加许多限制。
- 例如,一些限制包括拒绝执行自修改代码或加载未签名的动态库。
- 可以通过使用特殊权利来选择每种限制类别。
- 公证服务 -这是macOS Mojave(10.14)中也引入的第三层安全性。 这是一个代码扫描服务,它将扫描您的软件中是否包含恶意内容。 要通过公证扫描,您的应用程序必须已经选择进入强化运行时。
如何开始
要开始为这些新要求准备应用程序,请执行以下步骤:
配置您的权利
在我们为新选项实现IDE支持之前,需要两个手动步骤:
- 在文本编辑器中打开Xamarin.Mac应用程序.csproj并添加
<UseHardenedRuntime>true</UseHardenedRuntime>
到发布部分 - 在文本编辑器中打开您的entitlements.plist文件并添加
<key>com.apple.security.cs.allow-jit</key> <true/>
启动您的应用程序并进行测试。 如果崩溃,则可能需要Apple提供的其他权利 。
公证您的应用
要进行公证,您需要执行以下两个步骤:
- 将您的构建上传到公证服务
- 订票到您的应用程序
你们都准备好了! 如果您对此过程有任何反馈意见,我们非常希望收到您的来信。 电子邮件david.ortinau@microsoft.com或在GitHub上添加评论 。

移动开发人员工具高级程序经理