代码签名检查失败 Xcode 4。

7

我刚刚创建了全新的开发和部署证书,但当我尝试在存档管理器中验证应用程序时,出现了奇怪的错误:

error: Codesign check fails : /var/folders/w_/dvqfkh916k12c5hn639qvvqw0000gn/T/oqhxIfU87c/Payload/TestUpload.app: valid on disk
/var/folders/w_/dvqfkh916k12c5hn639qvvqw0000gn/T/oqhxIfU87c/Payload/TestUpload.app: satisfies its Designated Requirement
test-requirement: code failed to satisfy specified code requirement(s)

我已经搜索了很多地方,想要解决这个错误,但是对于Xcode 4来说似乎没有什么帮助。我按照配置文件的设置进行了设置,但是它似乎没有更新到最新的Xcode 4软件(在档案管理器出现之前,我曾经让它在之前的Xcode版本中工作过)

非常感谢任何帮助。


已解决!!! 多亏了Ben的帮助(他在下面发表了评论),我们现在可以正常运行了!我重新安装了所有证书,现在一切都恢复正常了。谢谢Ben!!!终于,这个问题得到了解决。 - Parad0x13
你是如何成功修复它的? - Zaldy Bughaw
6个回答

1

如果您在构建存档过程中涉及到依赖项目或库,请确保这些目标也使用了App Store分发证书进行构建。


1

我正在测试使用之前创建的旧证书,它可以正常工作,但是使用新的苹果开发者账户创建新证书却无法正常工作。

看起来苹果的配置门户会出现一些问题导致新证书无法正常创建。

所以,我猜测这不是你的应用程序的问题,我们只需要等待他们修复这个错误即可。


0

你确定你是用你的分发证书签名而不是开发者证书签名吗?如果你试图共享一个使用错误类型证书签名的存档代码,我认为XCode 4.2会报错。

这个帖子中有一些(旧的)信息: http://forums.macrumors.com/showthread.php?t=659607


是的,我非常努力地确保我使用了正确的配置文件。 - Parad0x13

0

在这个GUI中搜寻了“注释”,但是什么都没有找到 - 如果这篇文章被发布为答案,我很抱歉。

我已经花了过去5个小时来解决同样的错误。谷歌搜索一切。重新创建证书。当归档时一切正常,但最后出现黄色三角形表示错误。使用通配符和应用程序特定分发配置文件,在组织者中被识别为有效 - 我总是会遇到错误。你不是一个人,这让我疯狂 - 今天本应该是我们提交我们花费了一年时间开发的应用程序的日子...

我将密切关注这个线程,如果有任何进一步的信息可以提供,我也可以提供。如果你找到了一个解决方案Paradox,请在这里发布,因为我已经快要崩溃了,非常感激。


谢谢,感谢您的关注。我简直不敢相信提交应用程序会有多么困难!我只是在这个提交问题上花了7个小时以上。如果您得到任何信息,请务必提交。谢谢! - Parad0x13
遇到完全相同的问题......已经花了2个多小时了......希望苹果能够快速解决!我会关注这个线程并在找到答案后提供答案。 - CyberK
对于那些从历史角度或者为了解决问题而查看此帖子的人:苹果已经关闭了他们的服务器并进行了修复。解决方案是再次重新安装您的证书,现在应该可以正常工作了。这只是苹果端的问题。 - Ben

0

我也遇到了同样的问题。花了几个小时重新做证书、更换电脑、更换 Xcode 版本、进行人们建议的随机更改、重启、更换图标等等操作。

在控制台中,有大量与验证相关的数据输出,如果你运气好的话,在其中会有一些有意义的信息,但对我来说并没有。或者至少我无法理解 :/

编辑:控制台输出了它执行的命令,但格式有点混乱。它具有一个参数 R=,但输出省略了参数周围的引号。只运行此命令还是一样没什么帮助:

/var/folders/_x/XXXXXXXX/T/XXXXXXXX/Payload/XXXXXXXX.app: valid on disk
/var/folders/_x/XXXXXXXX/T/XXXXXXXX/Payload/XXXXXXXX.app: satisfies its Designated Requirement
test-requirement: code failed to satisfy specified code requirement(s)

结果证明,我遇到的问题是因为苹果公司在他们的一侧出现了错误,并且他们生成了无效的证书。他们发送了一封电子邮件解释了他们的错误,在那之后一切都恢复正常了。不过...他们真的需要改进这个工具的错误信息。有人做得非常糟糕。 - boxed

0

有效但不匹配的证书

在向Mac App Store提交应用程序时可能会出现此错误。该错误是由于一个或多个代码签名是有效的,但未经过Mac App Store适当的证书签名造成的:

Invalid Signature - The nested app bundle FRAMEWORK at path APPNAME.app/Contents/Frameworks/FRAMEWORK.framework has following signing error(s): valid on disk /Volumes/data01/app_data/dstr/mz_4939925606610311185dir/mz_6704668226144376567dir/eu.miln.beyond.mas.pkg/Payload/APPNAME.app/Contents/Frameworks/FRAMEWORK.framework/Versions/A: satisfies its Designated Requirement test-requirement: code failed to satisfy specified code requirement(s) . Refer to the Code Signing and Application Sandboxing Guide at http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/AboutCS/AboutCS.html and Technical Note 2206 at https://developer.apple.com/library/mac/technotes/tn2206/_index.html for more information.

解决方案是重新设计应用程序包,确保使用Mac App Store应用程序证书。

代码签名

使用codesign -d -vvvv <app.path>检查签名证书是否正确。

如果您有一个混合证书或非Mac App Store证书的复杂签名应用程序,则可以使用codesign标志deep递归地重新签署整个包:

codesign --force -o library -s '3rd Party Mac Developer Application: Your Organisation (000AAA000A)' --keychain '/absolute/path/to/mac-app-store.keychain' --preserve-metadata=identifier,entitlements,flags --deep '/absolute/path/to/APPLICATION.app'

请注意选项--preserve-metadata=identifier,entitlements,flags。这些选项很重要,以避免覆盖或更改相关的授权和捆绑标识符。
理想情况下,不应使用deep标志,但它可以用于解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接