【问题标题】:Notarize the Xamarin.MAC application公证 Xamarin.MAC 应用程序
【发布时间】:2019-10-18 16:29:18
【问题描述】:

我们有一个使用 Xamarin.MAC 开发的现有 MAC 应用程序,我们正在将应用程序的 DMG 文件分发给用户。

当我们在 catalina OS 中打开应用程序时,它显示了一些安全错误。所以我们发现我们需要在将应用程序分发给用户之前对应用程序进行公证。我们正在使用“应用程序开发人员 ID”对应用程序进行代码签名。

所以在申请公证之前,我们尝试在Xamarin.MAC项目的.cs项目的release部分添加true。然后,当我们将 UseHardenedRuntime 键和 EnableCodeSigning 键设置为 true 时,应用程序不会在 Release 模式下运行。

当我们将 UseHardenedRuntime 和 EnableCodeSigning 键都设置为 true 时,谁能知道为什么应用程序没有运行?

还有其他方法可以在 Xamarin 应用程序中设置 UseHardenedRuntime 吗?

我们已关注https://devblogs.microsoft.com/xamarin/macos-hardened-runtime-notary/ 对 Xamarin.MAC 应用程序进行公证?是否有其他方法可以对应用程序 dmg 文件进行公证?

【问题讨论】:

  • 没有错误显示并且应用程序正在成功构建。构建完成后出现空白输出窗口,并且没有显示项目屏幕。

标签: xamarin xamarin.mac macos-catalina notarize


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    这会转储嵌入式配置文件:

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

    这会转储应用已签署的权利:

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

    【讨论】:

      猜你喜欢
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      相关资源
      最近更新 更多