Official App Signature

如何验证 SmallClaw.app 是 Smallsoft 正式发行的正版软件

Company: Smallsoft Pty Ltd
Apple Developer Team ID: UFEVY4ES74
Target App: /Applications/SmallClaw.app

这份文档的用途

这份文档帮助普通 Mac 用户验证自己电脑上的 SmallClaw.app 是否满足以下条件:

  • 由 Smallsoft Pty Ltd 使用 Apple Developer ID 正式签名
  • 已通过 Apple notarization 公证检查
  • 当前 app 内容没有被第三方修改破坏签名

如果你的 SmallClaw.app 不在 /Applications/SmallClaw.app,请把下面命令里的路径替换成你实际的 app 路径。

打开 Terminal

  • 打开 macOS 的 Terminal app
  • 逐条复制下面的命令并按 Enter
  • 对照每一步的“正确结果”

快速判断

如果下面三类结果都能看到,说明这份 SmallClaw.app 是 Smallsoft Pty Ltd 正式发行、Apple 已接受、并且当前内容通过签名完整性检查:

Authority=Developer ID Application: Smallsoft Pty Ltd (UFEVY4ES74) /Applications/SmallClaw.app: accepted source=Notarized Developer ID Processing: /Applications/SmallClaw.app The validate action worked!

1. 验证发行方是不是 Smallsoft Pty Ltd

运行:

codesign -dv --verbose=4 /Applications/SmallClaw.app

正确结果里应该包含:

Authority=Developer ID Application: Smallsoft Pty Ltd (UFEVY4ES74) Authority=Developer ID Certification Authority Authority=Apple Root CA

这表示:

  • SmallClaw.app 是用 Apple Developer ID 签名的正式 macOS app
  • 签名证书属于 Smallsoft Pty Ltd
  • Team ID 是 UFEVY4ES74
  • 证书链最终连接到 Apple 的根证书

如果这里显示的公司名不是 Smallsoft Pty Ltd,或者 Team ID 不是 UFEVY4ES74,请不要运行这个 app。

2. 验证 app 内容有没有被修改

运行:

codesign --verify --deep --strict --verbose=2 /Applications/SmallClaw.app

正确结果通常是:

/Applications/SmallClaw.app: valid on disk /Applications/SmallClaw.app: satisfies its Designated Requirement

有些 macOS 版本在成功时可能只显示很少内容,或者没有明显错误信息。关键是不能出现 invalidrejectedcode object is not signed at alla sealed resource is missing or invalid 这类错误。

这一步表示 macOS 检查了 app 当前文件内容是否仍然符合原始签名要求。如果第三方修改过 app 里的程序文件、资源文件或签名结构,这一步通常会失败。

3. 验证 Gatekeeper 是否接受

运行:

spctl --assess --type execute --verbose=4 /Applications/SmallClaw.app

正确结果应该包含:

/Applications/SmallClaw.app: accepted source=Notarized Developer ID

这表示 macOS Gatekeeper 接受这个 app,并确认它来自已公证的 Developer ID 发行渠道。

如果这里显示 rejected,请不要运行这个 app。

4. 验证 notarization ticket 是否已经附在 app 上

运行:

xcrun stapler validate /Applications/SmallClaw.app

正确结果应该包含:

Processing: /Applications/SmallClaw.app The validate action worked!

这表示 Apple notarization ticket 已经附在 SmallClaw.app 上。这样即使在网络不稳定或离线环境下,macOS 也更容易确认这个 app 已通过 Apple 公证。

如果验证失败

如果任何一步失败,建议这样处理:

  • 不要继续打开这个 app
  • 删除当前这份 SmallClaw.app
  • 从 Smallsoft 官方渠道重新下载
  • 重新执行上面的验证命令

常见失败原因包括:

  • app 路径写错了
  • app 下载不完整
  • app 被第三方重新打包或修改过
  • 下载来源不是 Smallsoft 官方渠道
  • macOS 系统策略或网络状态影响了 Gatekeeper 查询

这些验证能证明什么

这些命令可以证明:

  • 这份 app 的 Apple Developer ID 签名属于 Smallsoft Pty Ltd
  • Team ID 是 UFEVY4ES74
  • macOS Gatekeeper 接受它作为已公证的 Developer ID app
  • 当前 app 内容通过签名完整性验证,未被第三方随意修改

这些命令不能证明:

  • 你的 license 是否已经激活
  • 当前 Mac 上的 Keychain 激活信息是否有效
  • app 是否来自某个特定 U 盘或安装包

验证正版发行和验证激活状态是两件不同的事。正版发行主要看 Developer ID、notarization 和签名完整性;激活状态则由 SmallClaw 的 license 系统和 macOS Keychain 管理。