我们有一个使用Xamarin.MAC开发的现有MAC应用程序,并且我们正在将该应用程序的DMG文件分发给用户。
当我们在catalina OS中打开应用程序时,它显示了一些安全错误,我们发现在将应用程序分发到users.We之前需要对应用程序进行公证,这是使用“应用程序开发人员ID”对应用程序进行签名的代码。
因此,在申请公证之前,我们尝试在Xamarin.MAC项目的.cs项目的release部分添加true。则当我们将UseHardenedRuntime键和EnableCodeSigning键设置为真时,应用程序将不会在发布模式下运行。
当我们将UseHardenedRuntime和EnableCodeSigning键都设置为true时,有人能知道为什么应用程序没有运行吗?
还有没有其他方法可以在Xamarin应用中设置UseHardenedRuntime?
我们已经跟踪了https://devblogs.microsoft.com/xamarin/macos-hardened-runtime-notary/对Xamarin.MAC申请的公证?有没有其他方法来证明应用程序的dmg文件?
发布于 2019-10-19 17:51:52
我遇到了同样的问题,下面的解决方案对我有效。请检查您的visual studio版本以编辑entitlment.plist。当我使用visual studio 8.0.5时,默认的entitlment.plist中没有Usehardened属性,所以我手动添加了,但它对我不起作用。
然后,我将visual studio版本更新到8.1.4,这样我们就可以在授权中看到"usehardened“属性。如果没有授权,请单击添加文件添加新授权。在代码签名字段后,将权限名称添加到项目属性的自定义权限字段中。然后我们可以进行发布构建。
发布于 2020-12-11 05:10:00
确保您使用开发人员ID对应用程序进行签名,这也取决于您的链接器和AOT设置,您可能需要配置其他授权。如果您仍然遇到问题,请尝试使用以下命令检查嵌入式配置文件是否包含您用于签名的所有权利
这将转储嵌入的配置文件:
security cms -D -i /Applications/myappname.app/Contents/embedded.provisionprofile这会转储应用程序已经签署的授权:
codesign -d --entitlements :- /Applications/myappname.apphttps://stackoverflow.com/questions/58454858
复制相似问题