如何在不迁移到Xcode 10的情况下为应用程序启用强化运行时?

如何在不迁移到Xcode 10的情况下为应用程序启用强化运行时?,xcode,macos,notarize,Xcode,Macos,Notarize,我想公证我的应用程序,在公证时,我收到了此“消息”的包无效状态:“可执行文件未启用强化运行时。” 我正在highsierra和Xcode 9.4中构建应用程序 我尝试在代码签名时添加--options=runtime,但没有帮助解决该错误。如果消息说“没有启用强化运行时”,那么就是这样。 无论出于何种原因,您添加的选项均未生效 尝试在命令行中运行codesign。 还可以尝试使用--deep选项。 该消息应该告诉您哪个可执行文件没有启用强化运行时。在对整个应用程序进行签名之前,分别对特定的可执行

我想公证我的应用程序,在公证时,我收到了此“消息”的包无效状态:“可执行文件未启用强化运行时。”

我正在highsierra和Xcode 9.4中构建应用程序

我尝试在代码签名时添加--options=runtime,但没有帮助解决该错误。

如果消息说“没有启用强化运行时”,那么就是这样。 无论出于何种原因,您添加的选项均未生效

尝试在命令行中运行
codesign
。 还可以尝试使用
--deep
选项。
该消息应该告诉您哪个可执行文件没有启用强化运行时。在对整个应用程序进行签名之前,分别对特定的可执行文件进行签名,并检查错误是否消失。

使用
codesign
。它有一个
--options=runtime
标志


代码设计选项运行时意味着“使签名与使用强化运行时构建的二进制文件兼容”。但您的错误消息意味着二进制文件是在未启用强化运行时的情况下生成的。构建代码和对其进行签名是两件不同的事情——在签名时不能追溯构建。 您需要使用Signing&Capabilities选项卡左侧的+按钮添加强化运行时选项,或者如果您正在手动执行所有操作,则进入构建设置,并将
启用强化运行时
设置为
。 当您验证应用程序的签名时,请使用:

codesign --display --verbose <path-to-app>
codesign--显示--详细

查找以“codedirectory”开头的行,并确保列出的标志之一是“runtime”。

您在其中添加了
--options=runtime
?根据苹果公司的说法,“强化运行时在Xcode 10或更高版本的功能窗格中可用,但只要您在macOS 10.13.6或更高版本上,您可以使用Xcode的早期版本手动启用该功能。为此,请将以下标志添加到其他_CODE_SIGN_FLAGS构建设置中:“这可能对您有所帮助,确保在对捆绑包进行代码签名后不会对其进行修改。否则签名将无效。