You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下.NET MAUI应用签名后云下载运行提示无法检查恶意软件

问题:.NET MAUI应用签名后,下载启动提示“Apple无法检查恶意软件”

我在macOS环境中创建了.NET MAUI应用,按照Apple官方步骤使用证书对应用包签名:

codesign --deep --force --sign "Developer ID Application: Developer_Certificate" TestApp.app

随后创建dmg安装包:

create-dmg 'TestApp.app'

并对安装包签名:

codesign --deep --force --sign "Developer ID Application: Installer_Certificate" TestApp.dmg

本地安装运行正常,但上传至云存储后下载安装,启动时提示:

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


解决步骤

1. 完成Apple应用公证(核心解决方法)

对外分发的macOS应用必须经过Apple公证,仅签名无法通过下载后的安全校验:

  • 先对.app包提交公证:
    xcrun notarytool submit TestApp.app --keychain-profile "你的公证密钥链配置" --wait
    
  • 公证通过后,给应用加盖公证戳:
    xcrun stapler staple TestApp.app
    
  • 重新生成dmg并签名,再对dmg执行公证和加盖戳:
    create-dmg 'TestApp.app'
    codesign --deep --force --sign "Developer ID Installer: Installer_Certificate" TestApp.dmg
    xcrun notarytool submit TestApp.dmg --keychain-profile "你的公证密钥链配置" --wait
    xcrun stapler staple TestApp.dmg
    
    注:密钥链配置需提前在Apple Developer后台创建API密钥,并导入本地密钥链。

2. 修正签名证书类型

当前用Developer ID Application证书签名dmg是错误的,dmg安装包需使用Developer ID Installer证书:

codesign --deep --force --sign "Developer ID Installer: Installer_Certificate" TestApp.dmg

3. 检查签名有效性

避免过度依赖--deep,先验证应用签名是否合规:

codesign --verify --verbose=4 TestApp.app

若存在嵌套框架签名问题,需先单独签名所有嵌套框架,再签名主应用包。

4. 临时解除隔离(针对用户侧)

若用户已下载应用,可手动移除macOS的互联网隔离标记:

xattr -d com.apple.quarantine /Applications/TestApp.app

5. 确认证书状态

  • 检查Apple Developer后台的Developer ID证书是否有效、未过期/吊销
  • 本地密钥链中证书的私钥是否可用、未锁定

内容的提问来源于stack exchange,提问作者Archie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 04:43:17