Mac 无法验证我下载的应用程序

问题描述 投票:0回答:1

我已经创建了一个 Mac 应用程序,现在我希望分发它。但是,无论我做什么,每当我尝试安装该应用程序时,它都会显示

Apple could not verify “<application_name>” is free of malware that may harm your Mac or compromise your privacy.

我按照Apple开发者论坛

的说明进行操作
  1. 使用
    nuitka
  2. 生成 Mac 应用程序
  3. 使用协同设计签署应用程序,
codesign --deep --force --verify --verbose --sign "Developer ID Application: <developer id>" \
--entitlements entitlements.plist --options runtime "<application>.app"
  1. 验证签名流程,
codesign --verify --verbose "<application>.app"
<application>.app: valid on disk
<application>.app: satisfies its Designated Requirement
  1. 将申请表压缩并发送进行公证
/usr/bin/ditto -c -k --sequesterRsrc --keepParent <application>.app <application>.zip
xcrun notarytool submit <application>.zip --keychain-profile "key_chain_notarization_profile" --wait
  1. 它说
    accepted
    。然后我将公证票钉到应用程序上。
xcrun stapler staple "<application>.app"
  1. 查看公证状态
spctl -a -vvv -t install <application>.app
<application.app>: accepted
source=Notarized Developer ID
origin=Developer ID Application: <developer_id>
  1. 我使用
    dmgbuild
    创建了一个 dmg,然后也签署了该 dmg。
  2. 现在我将 dmg 上传到我的文件服务器,当我下载并尝试安装它时,它显示
    verification failed
    。我尝试检查此 dmg 的公证状态(使用 spctl),结果没问题。

Stackoverflow post 建议签署应用程序,对其进行公证,从中准备 dmg,然后签署 dmg 并对其进行公证。我尝试过这个但没有运气。

我的设置已选中

Allow applications from app store and verified developers

我还检查了我接受的公证的日志。它说已接受,但日志显示有一些警告,例如

{
      "severity": "warning",
      "code": null,
      "path": "<application>.dmg/<application>.app/Contents/MacOS/mediapipe/modules/face_detection/face_detection_short_range.tflite",
      "message": "The archive at <application>.dmg/<application>.app/Contents/MacOS/mediapipe/modules/face_detection/face_detection_short_range.tflite could not be unpacked. Any executables contained in the archive will not be notarized.",
      "docUrl": null,
      "architecture": null
    },

这些警告会导致问题吗?

我正在运行 Mac 操作系统版本 15.0 的 M2 Mac Air。
非常感谢任何帮助。

macos notarize
1个回答
0
投票

如果它对任何人有帮助,那么这些步骤对我有用。重新启动笔记本电脑后,一切都按预期运行。我还在一些 Apple 开发者论坛上看到 Gatekeeper 缓存结果,因此可能与此有关。不管怎样,自从重启以来,每次都运行得很好。回顾一下,以下是我遵循的所有步骤:

  1. 创建应用程序
  2. 使用 codesign 对应用程序进行签名
  3. 用它创建 DMG
  4. 提交DMG进行公证
  5. 将公证票钉在应用程序上
  6. 再次创建DMG。该 DMG 已准备好分发。
© www.soinside.com 2019 - 2024. All rights reserved.