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

咨询:能否为仅支持10.7.5的旧版Kext文件签名

给旧版M-Audio Kext签名的实用方案

嘿,我来帮你搞定这个旧Kext的签名问题~首先得指出你之前用的命令有个关键问题,咱们一步步来梳理:

1. 选对签名身份是核心

你用的Developer ID Application:身份是给普通App签名用的,内核扩展(Kext)得用专门的Developer ID Kernel Extension身份才行!这是苹果专门为内核级代码设计的签名证书,和应用证书不通用。你得先登录苹果开发者后台,在Certificates板块里确认有没有这个证书,如果没有,需要申请一个。

2. 适配旧Kext的签名细节

这个Kext是针对10.7.5做的,要注意两个点:

  • 10.7.5本身的签名规则没现代macOS严格,但要让签名有效,得先确保Kext的Info.plist里有CFBundleIdentifier这类必填字段——要是缺了这些基础信息,签名大概率会失败,先检查一下这个文件的完整性。
  • 要是你打算在比10.7.5新的系统上用它,哪怕关闭SIP,签名也得符合苹果的基本要求,所以身份选对是第一步。

3. 正确的签名命令写法

把签名身份换成你的Developer ID Kernel Extension证书名称(比如Developer ID Kernel Extension: Your Name (ABC123)),试试这个命令:

codesign -s "Developer ID Kernel Extension: Your Name (ABC123)" --verbose Downloads/private/tmp/InstallerTemp/M-AudioFireWireBeBoB.kext/

要是Kext里嵌套了其他可执行文件,或者之前有旧签名残留,可以加上-f(强制覆盖)和--deep(深度签名)参数:

codesign -f -s "Developer ID Kernel Extension: Your Name (ABC123)" --deep --verbose Downloads/private/tmp/InstallerTemp/M-AudioFireWireBeBoB.kext/

4. 验证签名是否成功

签完之后一定要验证一下,跑这个命令:

codesign -vvv Downloads/private/tmp/InstallerTemp/M-AudioFireWireBeBoB.kext/

如果输出里出现valid on disk和satisfies its Designated Requirement,就说明签名成功啦。

5. 额外的实用提示

  • 就算签了名,在现代macOS上加载这个旧Kext还是得调整SIP设置,比如用csrutil enable --without kext开启SIP但允许加载未认证的Kext,完全关闭SIP当然也可以,但前者更安全一点。
  • 要是你没有苹果开发者账号,也可以用自签名证书:打开Keychain Access,新建一个类型为Code Signing的证书,然后用这个证书名称替换命令里的身份就行。不过自签名的Kext只能在关闭SIP的系统里用,而且系统更新后可能需要重新签名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 10:28:13