Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode &引用;来自调试器的消息:由于代码签名错误而终止;调试Mac应用程序时?_Xcode_Macos_Cocoa_Code Signing_Provisioning Profile - Fatal编程技术网

Xcode &引用;来自调试器的消息:由于代码签名错误而终止;调试Mac应用程序时?

Xcode &引用;来自调试器的消息:由于代码签名错误而终止;调试Mac应用程序时?,xcode,macos,cocoa,code-signing,provisioning-profile,Xcode,Macos,Cocoa,Code Signing,Provisioning Profile,我正在沙箱中编写Mac应用程序,似乎无法让代码签名工作。我已经从目标的“信息”选项卡中选择了“开发人员ID”,并尝试让Xcode自动设置配置文件以及自己创建配置文件。应用程序生成时没有任何错误或警告,但当我尝试“生成并运行”时,它会给我以下错误: 尝试从开发中心重新生成证书。大多数情况下,当您切换到新的mac或升级到较新的OS X版本后,都会发生这种情况。 您已从门户网站下载并安装了证书(密钥链访问)。如果您今天在同一台Mac上创建了证书,那么您尝试在其上运行该证书将不会是您的问题 上面的证书位

我正在沙箱中编写Mac应用程序,似乎无法让代码签名工作。我已经从目标的“信息”选项卡中选择了“开发人员ID”,并尝试让Xcode自动设置配置文件以及自己创建配置文件。应用程序生成时没有任何错误或警告,但当我尝试“生成并运行”时,它会给我以下错误:


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

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

控制台.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 Developer”并将配置文件设置为“自动”。调试器在那之后工作正常。

在iOS模拟器上调试时,为Mac Catalyst开发时,当
启用\u运行时
设置为
时,也会发生这种情况

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

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

将目标>生成设置>代码签名标识修改到您的签名开发中。

我今天刚刚创建了证书!(在同一台计算机上)我很确定我已经涵盖了所有这些基础。我使用的配置文件带有通配符应用程序ID,这可能是问题所在吗?只要你的应用程序包标识符在通配符设置范围内,你就可以了。IE:“com.mycompany.*”将与“com.mycompany.foo”一起使用。同样,“com.mycompany.myapp.*”将与“com.mycompany.myapp.foo”一起使用。我在另一个权限中遇到了相同的问题。我解决了以下步骤:1)我删除了所有与CloudKit相关的权限以使应用程序运行2)重置证书3)添加权限我专门提出了单元测试,本例中的修复方法是将测试目标上的签名证书从默认(“签名以本地运行”)更改为“开发”。请使用
*
括号将路径的字体更改为斜体。