如何修复iPhone项目的“失败的代码签名验证”?

时间:2010-05-21 03:58:02

标签: iphone xcode

昨晚,iPhone项目构建完美。

今天早上,我在{em>单独的文件夹中安装了XCode 3.2.3。当我在旧XCode 3.2.2中打开同一个项目并重新构建项目时。我收到了这个警告:

  

应用程序代码失败   验证。签名是   无效,或者没有签名   Apple提交证书。 (-19011)

我该如何解决?谢谢!

13 个答案:

答案 0 :(得分:27)

对我来说,以下步骤解决了这个问题:

  1. 转到产品>编辑方案。

  2. 打开存档配置文件。

  3. 将Build配置设置为Distribution。

答案 1 :(得分:9)

我也遇到过同样的问题。它表明我的钥匙串中有重复的证书注册。删除其中一个(我从系统钥匙串中删除了一个)修复了问题。

帮助我解决问题的步骤:

  1. 打开KeyChain Access应用程序
  2. 选择“登录”钥匙串,然后在底部窗格中选择“证书”
  3. 切换到“系统”钥匙串,查看是否在两个链中都注册了证书。
  4. 删除其中一个
  5. 重建应用程序

答案 2 :(得分:6)

我有同样的问题,似乎3.2.3与代码签名混淆。我通过重新运行3.2.2安装程序来修复它,无需卸载任何东西。

答案 3 :(得分:5)

可以使用命令行工具“xcode-select”

来解决并行XCode问题

我发现安装了XCode 4.2 beta会导致类似的问题。其中一个嵌入式授权文件被放置在不同的目录中,导致找不到文件错误。

解决方案是使用xcode-select来验证和修复XCode路径。

答案 4 :(得分:4)

除了谷歌搜索这个问题的可能解决方案并尝试它们(希望它们有所帮助),这里有一个建议如何诊断导致这个问题的原因。以下步骤适用于Xcode 4.2。

  1. 在菜单中,选择查看>导航器>显示日志导航器。 Log Navigator应显示在左侧。
  2. 在构建列表中,选择导致问题的那个。构建中的日志将显示在主视图中。
  3. 滚动到最底部。最后两个步骤应为 CodeSign 验证,其中验证步骤包含警告。
  4. 展开 CodeSign 并检查用于执行代码签名的参数。
  5. 展开验证,详细了解错误/警告。
  6. 同时向上滚动并检查构建目标的标题:

    构建目标(您的构建目标)

    项目(您的项目)|配置(选择配置)|目的地......

    就我而言,我发现在进行存档构建时,应用程序已使用开发人员证书进行签名。检查构建目标的标题显示发布配置用于构建存档。补救措施是:

    1. 在菜单中,选择产品>编辑方案
    2. 在“编辑方案”对话框中,选择存档构建项目(左侧列表)
    3. 构建配置更改为分发
    4. 重复构建目标后,我遇到了这个问题。原始目标由分发证书签署。但是,在复制目标时,Xcode决定将Release配置分配给Archive build。

答案 5 :(得分:3)

今天我发生这种情况,因为我正在将现有项目移动到新的Git存储库结构中,同时使用通过作为“成员”添加到我的客户团队获得的开发证书。因此有很多机会搞砸了。

就我而言,问题原来是“构建产品路径”。我把它设置为相对路径“../../../build”而不是绝对路径。这导致验证工具搞砸了,因为实际路径没有正确折叠。我将其更改为绝对路径,然后验证工具再次成功运行。

我将此作为错误提交给Radar,为#8946204。

答案 6 :(得分:3)

这是一篇很老的帖子,但我想分享我学到的东西(真的记得因为我忘记了这一部分。)我试图建立一个针对广告文章的项目。我忘记了我需要创建一个单独的App Store配置文件(Provisioning Portal - > Provisioning - > Distribution)。这是我提交的第一个应用程序,文档压倒性,所以我错过/忘记了这一部分。一旦我创建了App Store配置文件并安装在XCode中,一切正常。只是想把它扔出去,以防其他人有同样的问题。

答案 7 :(得分:3)

由于hiroshi说你可以在那里改变它: 我只是这样做:

  • 打开管理器
  • 转到设备
  • 供应资料
  • 单击要使用的配置文件。在那里,您将看到配置文件标识符键。
  • 通过textfile(xcodepj包中的文件)
  • 打开xcode项目
  • 转到这些行并将密钥放在此处
@@ -325,6 +325,7 @@
                            PREBINDING = NO;
 +                               "PROVISIONING_PROFILE[sdk=iphoneos*]" = "key goes        here";
                            SDKROOT = iphoneos;
 @@ -361,6 +362,7 @@
                            PREBINDING = NO;
 +                               "PROVISIONING_PROFILE[sdk=iphoneos*]" = "and also here";
                            SDKROOT = iphoneos;
  • 保存更改并重新启动项目

!!!这对我来说在XCODE 4中起作用了!!!

答案 8 :(得分:0)

如果您转到管理器并选择配置配置文件,该配置文件是否列在那里?如果是这样,您是否在“项目设置/构建/代码签名”部分中检查了它的设置?

答案 9 :(得分:0)

我不确定,但是在项目中恢复这些更改.pbxproj使我无法在设备中启动我的应用程序。问题的警告主题仍然存在。

@@ -325,6 +325,7 @@
                                PREBINDING = NO;
+                               "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
                                SDKROOT = iphoneos;
@@ -361,6 +362,7 @@
                                PREBINDING = NO;
+                               "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
                                SDKROOT = iphoneos;

答案 10 :(得分:0)

我只是通过从钥匙串中删除我的分发证书然后从临时配置文件

再次下载来修复此问题

答案 11 :(得分:0)

对于构建警告或存档验证错误“应用程序失败的代码验证验证”,请参阅以下网址的Apple完整可能原因列表"How do I resolve the error: Application failed codesign verification?"

最佳,

答案 12 :(得分:-1)

简单解决方案:使用DISTRIBUTION证书而非开发人员证书来构建您的应用程序。