公证 Xamarin.MAC 应用程序

4
我们有一个使用Xamarin.MAC开发的现有MAC应用程序,并且我们正在向用户分发该应用程序的DMG文件。当我们在Catalina OS中打开应用程序时,它会显示一些安全错误。因此,我们发现在将应用程序分发给用户之前,需要对其进行公证。我们正在使用“应用程序开发人员ID”对应用程序进行代码签名。因此,在将应用程序申请公证之前,我们尝试在Xamarin.MAC项目的.cs项目的发布部分中添加true。然后,当我们将UseHardenedRuntime键和EnableCodeSigning键设置为true时,应用程序无法在Release模式下运行。请问是否有其他方法在Xamarin应用程序中设置UseHardenedRuntime?我们遵循了https://devblogs.microsoft.com/xamarin/macos-hardened-runtime-notary/以公证Xamarin.MAC应用程序?是否有其他方法来公证应用程序DMG文件?

没有显示任何错误,应用程序已经成功构建。在构建完成后出现了空白的输出窗口,没有显示任何项目屏幕。 - Roshil K
2个回答

4

我曾经遇到了同样的问题,以下解决方案对我有效。 请检查您的Visual Studio版本以编辑entitlement.plist。 当我使用Visual Studio 8.0.5时,默认的entitlement.plist中没有Usehardened属性,因此我手动添加了该属性,但这对我没有起作用。

然后,我将Visual Studio版本更新为8.1.4,然后我们可以在entitlement中看到"usehardened"属性。如果没有entitlment,请点击添加文件添加新的entitlement。并在代码签名字段后将entitlement名称添加到项目属性中的自定义entitlement字段中。然后我们可以进行发布构建。


0

请确保您使用开发者ID签署应用程序,根据您的链接器和AOT设置,您可能需要配置其他授权。如果您仍然遇到问题,请尝试检查嵌入式预配文件是否包含您用于签名的所有授权,使用以下命令进行转储:

这将转储嵌入式预配文件:

security cms -D -i /Applications/myappname.app/Contents/embedded.provisionprofile

并且这会转储应用程序已签署的授权:

codesign -d --entitlements :- /Applications/myappname.app

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接