协同检查失败Xcode 4

时间:2012-01-14 20:47:41

标签: xcode compilation codesign

我刚刚创建了所有新的开发和部署证书,当我尝试在归档管理器中验证应用程序时,我遇到了这个奇怪的错误:

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)

任何帮助将不胜感激

6 个答案:

答案 0 :(得分:1)

我正在使用之前停用的旧证书进行测试,但确实运行良好,但使用新的Apple开发帐户创建新证书无法正常工作。

似乎新的证书是使用Apple配置门户创建的。

所以,我猜您的应用程序没有问题,我们只需要等到修复错误。

答案 1 :(得分:1)

如果您正在构建依赖项目或库作为归档过程的一部分,请确保这些目标也是使用App Store分发证书构建的。

答案 2 :(得分:0)

您确定是否使用分发配置文件而不是开发人员个人资料对此进行了签名?我认为如果您尝试共享使用错误类型的配置文件签名的存档代码,XCode 4.2将会出错。

此主题中的一些(旧)信息: http://forums.macrumors.com/showthread.php?t=659607

答案 3 :(得分:0)

搜索这个GUI寻找“评论”但没有发现任何内容 - 如果这是作为答案发布的,请道歉。

我花了最后5个小时完全一样的错误。谷歌搜索一切。重新创建证书。归档时一切正常,但最后我得到指示错误的黄色三角形。使用在管理器中识别为有效的通配符和应用程序特定的分发配置文件 - 我总是得到错误。你并不孤单,这让我感到疯狂 - 今天应该是我们提交我们去年度过的应用程序的那一天......

将密切关注此主题,如果有任何帮助,可以提供我的最终信息。如果你找到一个解决方案Paradox,请在这里发布,因为我在我的智慧结束时会非常感激。

答案 4 :(得分: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)

答案 5 :(得分:0)

有效但不匹配的证书

将应用程序提交到Mac App Store时可能会发生此错误。发生此错误是因为一个或多个代码签名有效但未由Mac App Store相应的证书签名:

#include <set>
#include <utility>
#include <boost/iterator/transform_iterator.hpp>

std::shared_ptr<T const> add_const (std::shared_ptr<T> ptr) { return ptr; };

int main()
{
    std::set<std::shared_ptr<T>> the_set;
    auto cbegin = boost::make_transform_iterator(std::as_const(the_set).begin(), add_const);
    auto cend = boost::make_transform_iterator(std::as_const(the_set).end(), add_const);
    return 0;
}

解决方案是重新对应用程序包进行编码,确保使用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>标志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标志,但它可用于解决问题。