"Message from debugger: Terminated due to code signing error" 在调试 Mac 应用程序时?

"Message from debugger: Terminated due to code signing error" when debugging a Mac app?

我正在沙盒中编写 Mac 应用程序,但似乎无法使代码签名正常工作。我从“信息”选项卡中为我的目标选择了 "Developer ID",并且尝试让 Xcode 自动设置我的配置文件以及我自己创建配置文件。该应用程序构建时没有任何错误或警告,但是当我尝试 "build and run," 时,出现以下错误:

尝试从开发中心重新生成您的证书。当您切换到新的 mac 或升级到较新的 OS X 版本后,大多数情况下都会发生这种情况。

  • 您已经从门户下载并安装了您的证书(在钥匙串访问中)。如果您今天在同一 Mac 上创建了证书,那么您正在尝试 运行 它不会是您的问题。
  • 您上面的证书在您导入到 XCode 的配置文件中。
  • 您实际上已将配置文件导入 XCode。它应该可以从您的构建设置下拉列表中选择。
  • 您在门户中创建的包标识符与您在目标信息下的项目中指定的相匹配。

console.app 中,我注意到我收到了以下消息:

3/5/15 4:46:37.151 PM taskgated[73]: killed com.nateparrott.Boxcar[pid 27408] because its use of the com.apple.developer.ubiquity-container-identifiers entitlement is not allowed (error code -67050)

事实证明,我的项目中的默认授权文件包含一个空的 iCloud 容器列表,这导致沙箱认为 应用程序需要 iCloud 权限(这不是包含在默认配置文件中)。从权利文件中删除 iCloud 条目解决了问题。

我尝试将构建设置->代码签名身份设置为“Mac 开发人员”并将配置文件设置为“自动” ”。之后调试器工作正常。

在 iOS 模拟器上调试时,在为 Mac Catalyst 开发时,当 ENABLE_HARDENED_RUNTIME 设置为 YES 时,也会发生这种情况。

以下 Xcode 配置有助于避免此错误:

ENABLE_HARDENED_RUNTIME[sdk=macosx*] = YES
ENABLE_HARDENED_RUNTIME[sdk=iphonesimulator*] = NO
ENABLE_HARDENED_RUNTIME[sdk=iphoneos*] = NO

修改目标>构建设置>代码签名身份到您的签名开发。