【发布时间】:2023-03-12 00:24:01
【问题描述】:
我们有一个音频内核扩展,它安装在 /Library/Extensions 中。 根据苹果新指南(WWDC 视频 707),我们应该对安装 /Library/Extensions 的 kext 进行代码签名。 我们要求苹果为我们的开发者 ID 启用 kext 代码签名属性,现在它已启用。根据我们从苹果收到的邮件回复是这样的
如果您之前获得了用于应用签名的开发者 ID,则需要重新下载您的开发者 ID 以获得更新的证书。
因此我们重新下载了证书并对 kext 进行了代码签名。代码编译正常但是当我们尝试使用以下命令验证代码符号时 sudo kextutil -tn KEXTPATH
它给出了以下错误- 代码签名失败:代码签名无效 KEXT_PATH 似乎是可加载的(包括磁盘库的链接)。
谁能帮我解决这个错误。
【问题讨论】:
-
尝试执行
sudo kextutil -v KEXTPATH并查看输出指示。也可以试试codesign -dvvv KEXTPATH和codesign --verify -vvvv来确定更多关于你的共同签名的信息。 -
谢谢。我会试试这些命令
-
还要确保您使用的是 XCode 3.5 或(最好)4.x 中的
codesign。较旧的 XCode 版本可能无法签署 kexts。 -
嘿@Sprabhu,你找到解决方案了吗?
-
@MattyAyOh 是的。此问题是由于开发人员 ID 证书造成的。我们已创建新的开发人员 ID 证书,如 WWDC 视频 707 中所述。
标签: macos code-signing osx-mavericks kernel-extension