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

如何对 macOS 应用进行代码签名?

macOS 终端代码签名问题解答
  • 首先直接回答你的两个核心疑问:
    1. 通过终端完成代码签名的说法完全属实,macOS 原生提供了命令行签名工具,无需操作 Xcode 即可完成全流程签名。
    2. 终端签名不仅支持 .pkg 安装包,也完全适配已编译完成的 .app 格式应用,同时还支持 dmg、插件、内核扩展等多种二进制产物的签名需求。

基础操作步骤

第一步:导入证书到钥匙串

双击你拿到的 distribution.cer 文件,按照提示导入到当前用户的「登录」钥匙串或者「系统」钥匙串即可。导入完成后打开「钥匙串访问」应用,在左侧「我的证书」分类中找到刚导入的分发证书,复制证书的完整名称,格式一般为 Apple Distribution: 主体名称 (团队ID)。

第二步:签名 .app 应用

打开终端执行以下命令:

codesign --force --deep --sign "你复制的证书完整名称" /path/to/你的应用.app

参数说明:

  • --force:覆盖应用原有的旧签名
  • --deep:递归签名 .app 包内所有嵌套的二进制、框架、插件等内部组件,避免部分内容未签名触发系统拦截
  • --sign:指定用于签名的证书

第三步:验证签名有效性

执行以下命令校验签名是否成功:

codesign -vvv /path/to/你的应用.app

如果返回结果包含 valid on disk、satisfies its Designated Requirement 字样,即说明签名有效。

可选:签名 .pkg 安装包

如果需要对 pkg 安装包签名,使用 productsign 命令即可:

productsign --sign "你复制的证书完整名称" /path/to/未签名的安装包.pkg /path/to/输出的签名后安装包.pkg

注意:你当前使用的 ad hoc 分发证书仅支持在 Apple Developer 后台预先绑定了 UDID 的设备上运行,如果需要面向所有普通用户分发、避免系统弹出无法打开的拦截提示,还需要额外完成苹果公证流程,公证操作也可以通过终端的 notarytool 命令完成,无需打开 Xcode。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:45:03