【问题标题】:How to fix "failed codesign verification" of an iPhone project?如何修复 iPhone 项目的“失败的协同设计验证”?
【发布时间】:2011-02-22 04:42:00
【问题描述】:

昨晚,iPhone项目完美搭建。

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

应用程序协同设计失败 确认。签名是 无效,或者没有用 苹果提交证书。 (-19011)

我该如何解决?谢谢!

【问题讨论】:

  • 这个警告会阻止你跑步吗?从提交开始?
  • 由于这个警告,我无法运行我的应用程序。
  • 在数周内没有收到 -19011 错误之后......当我慢慢构建我的应用程序......然后错误开始出现今天。我没有升级任何东西。没有安装/删除任何内容。

标签: iphone xcode


【解决方案1】:

如果您转到 Organizer 并选择 Provisioning Profiles,那里是否列出了配置文件?如果是这样,您是否检查过它在项目设置/构建/代码签名部分中的设置?

【讨论】:

  • 是的。是的。我还发现这个警告出现在每个旧项目上。在我看来 3.1.3 改变了 3.1.2 环境的一些东西......
【解决方案2】:

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

【讨论】:

  • 澄清一下......这是否意味着:1)3.2.2已安装2)安装3.2.33)重新安装3.2.2。之后,3.2.23.2.3 都可以工作吗?
  • 这就是我的建议,是的。我可以确认能够为 App Store 进行代码设计(对于使用 3.2.2 的 OS 3.0)。 XCode 3.2.3 运行良好,但尚未测试构建/代码设计。
  • 很激进,看下面的解决方案,票数高得多。
【解决方案3】:

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

帮助我解决问题的步骤:

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

【讨论】:

  • 我在不同的钥匙链中有几个证书,只剩下一个已解决的问题
  • 不是我的解决方案。我没有重复,但我确实有相同的症状。
  • 为我解决了。显然,如果您的 Keychain 中仍有过期证书,XCode 将毫无理由地使用它而不是较新的未过期证书。
【解决方案4】:

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

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

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

【讨论】:

  • 我知道这是一篇旧帖子,但@Shaggy Frog 的解决方案正是我发现的问题所在。在项目设置的“构建产品路径”中,我有以下值 $(PROJECT_DIR)/../build.我这样做的原因是我不希望构建文件夹与我的项目位于同一文件夹中(出于源代码控制的原因)。 “../”导致了原始问题中 ohho 的代码签名警告。从构建路径中删除“../”后,代码签名警告消失了。我的回答:不要在构建路径中使用“../”。
  • 是的,在我的情况下也是如此 - 包含 .. 的构建路径是问题所在。毋庸置疑,这令人沮丧,因为它很难在具有不同构建输出的机器之间移动项目。
【解决方案5】:

我不确定,但是在 project.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;

【讨论】:

    【解决方案6】:

    这是一篇旧帖子,但我想分享我学到的东西(我真的记得,因为我忘记了这部分。)我试图根据临时配置文件构建我的项目。我忘记了我需要创建一个单独的 App Store 配置文件(Provisioning Portal -> Provisioning -> Distribution)。这是我提交的第一个应用程序,文档太多,所以我错过/忘记了这部分。一旦我创建了 App Store 配置文件并安装在 XCode 中,一切正常。只是想把它扔掉,以防其他人有同样的问题。

    【讨论】:

    • 那是我的问题,我觉得自己很笨。谢谢;)
    【解决方案7】:

    简单的解决方案:使用 DISTRIBUTION 证书而不是开发者证书构建您的应用。

    【讨论】:

    • 这对我有用。 Xcode 4,构建设置,代码签名身份,发布,将证书从开发人员更改为分发,目标和项目。请注意,这是在进行项目时存档(为了将存档提交到应用商店)。
    【解决方案8】:

    可以使用命令行工具“xcode-select”解决并行 XCode 问题

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

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

    【讨论】:

    • 谢谢!此命令为我修复了警告。 XCode 4.0.2 在尝试验证代码签名时使用了 beta 版本 (XCode 4.2) 的路径。我用“xcode-select -switch /Developer”设置了路径。
    • 我的 4.3 sdk 和 sdk5 测试版都运行了好几周,但由于某种原因,有一天我无法创建一个没有此错误的临时构建。经过数小时的头痛之后,使用 xcode-select 重新选择 4.3 sdk 终于奏效了。非常感谢!
    • 这里可能值得一提的是,在撰写本文时 4.2 不能用于提交应用程序(在我的情况下报告代码签名失败)
    【解决方案9】:

    由于 hiroshi 所说,您可以在那里进行更改: 我只是做的是:

    • 打开管理器
    • 转到设备
    • 配置文件
    • 单击要使用的配置文件。在那里您将看到配置文件标识符键。
    • 通过文本文件(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 中对我有用的东西!!!

    【讨论】:

      【解决方案10】:

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

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

      2. 打开存档配置文件。

      3. 将构建配置设置为分发。

      【讨论】:

      • 在 Xcode 4.2 中非常有用,如果您按照 Apple Docs 中的描述创建分发构建配置
      • 好吧,就我而言,它已经设置为分发。真是一团糟。
      • 噢!完全修复它。我正在针对调试配置进行构建,这就是它出现错误的原因。谢谢!
      【解决方案11】:

      我只是通过从钥匙串中删除我的分发证书然后从临时配置文件再次下载来解决此问题

      【讨论】:

        【解决方案12】:

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

        1. 在菜单中,选择查看 > 导航器 > 显示日志导航器。日志导航器应显示在左侧。
        2. 在构建列表中,选择导致问题的版本。构建的日志将显示在主视图中。
        3. 滚动到最底部。最后两个步骤应该是 CodeSignValidate,其中 Validate 步骤包含警告。
        4. 展开 CodeSign 并检查用于执行代码签名的参数。
        5. 展开验证以了解有关错误/警告的更多信息。

        同时向上滚动并检查构建目标的标题:

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

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

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

        1. 在菜单中,选择产品 > 编辑方案
        2. 在 Edit Scheme 对话框中,选择 Archive 构建项(左侧列表)
        3. 构建配置更改为分发

        我在复制构建目标后遇到了这个问题。原始目标由分发证书签名。但是,在复制目标时,Xcode 决定将 Release 配置分配给 Archive 构建。

        【讨论】:

        • 谢谢,这让我意识到发布目标和发布项目不应该包含 Entitlements.plist 文件。将这些字段留空后,codeSign 错误消失了。
        【解决方案13】:

        对于构建警告或存档验证错误“应用程序未通过协同设计验证”,请参阅 Apple 的完整潜在原因列表,网址为:"How do I resolve the error: Application failed codesign verification?"

        最好的,

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-08
          • 2018-03-12
          • 2016-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多