我想对我的应用程序进行公证,在公证时我收到了此“消息”的包无效状态:“可执行文件没有启用强化运行时。”,
我正在 highsierra 和 Xcode 9.4 中构建应用程序。
我尝试在代码签名时添加 --options=runtime ,但无助于解决错误。
使用codesign
. 它有--options=runtime
一面旗帜。
codesign 选项运行时的意思是“使签名与使用硬化运行时构建的二进制文件兼容”。但是您的错误消息意味着二进制文件是在未启用强化运行时的情况下构建的。构建代码和签名是两件不同的事情——签名时不能追溯构建。您需要使用 Signing & Capabilities 选项卡左侧的 + 按钮添加 Hardened Runtime 选项,或者如果您手动执行所有操作,请进入构建设置并设置ENABLE_HARDENED_RUNTIME
为YES
. 当您验证应用程序的签名时,使用:
codesign --display --verbose <path-to-app>
查找以“codedirectory”开头的行并确保列出的标志之一是“runtime”。
如果消息说“没有启用强化运行时。”,那么就是这样。您添加的选项无论出于何种原因都没有生效。
尝试codesign
在命令行中运行。也尝试使用--deep
选项。该消息应该告诉您哪个可执行文件没有启用强化运行时。在签署整个应用程序之前单独签署该特定可执行文件并检查该错误是否消失。