Apple 无法检查它是否存在恶意软件

Apple cannot check it for malicious software

我正在分发基于 nw.js 的 macOS 应用程序,我使用 codesign 命令手动对其进行签名,并使用有效的 macOS 证书(该应用程序是在 Mojave 中创建并使用最新的签名XCode 工具)。

codesign -s "my identity" --deep "my app.app"

请注意,--deep 开关是必需的,因为我也在修改我的应用程序包中的 .framework 包

签名成功,我也可以验证codesign:

codesign -d --verbose=4 "my app.app"
spctl --assess --verbose=4 --type execute "my app.app"

然后我通过网络(Google 驱动器)分发它,并且在没有任何警告的情况下在 Catalina 之前的任何 Mac 中都可以正常工作。 当我尝试在另一台计算机 运行 Catalina 中打开应用程序时,我收到此消息

"xxxx" can't be opened because Apple cannot check it for malicious software

类似这样:

我看到您仍然可以从 "Security and Privacy panel" 打开它,但这不是我希望我的用户执行的操作。 我怎样才能摆脱这个消息?有不同的签名方式吗?或者我需要从 Catalina 那里签名吗?

您还需要notarize您的申请。这是 macOS 10.15 及更高版本上开发者 ID 签名应用程序的要求。

该过程需要您将签名的 .app 上传到 Apple,并集成到 Xcode,但您也可以使用命令行工具 altool 和 [=11] 手动执行这些步骤=].

一个好的起点是 WWDC Session