代码之家  ›  专栏  ›  技术社区  ›  ohho

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

  •  31
  • ohho  · 技术社区  · 14 年前

    昨晚,iphone项目完美地完成了。

    今天早上,我安装了 XCode 3.2.3 在一个 分离 文件夹。当我在旧的项目中打开同一个项目时 XCode 3.2.2 重新建设项目。我得到警告:

    应用程序代码签名失败 验证。签名是 无效,或未使用 苹果提交证书。(- 19011)

    我怎么修?谢谢!

    13 回复  |  直到 13 年前
        1
  •  6
  •   James J    14 年前

    我也有同样的问题,似乎3.2.3和代码签名有点不对劲。我通过重新运行3.2.2安装程序修复了它,不需要卸载任何东西。

        2
  •  27
  •   benvolioT    13 年前

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

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

    2. 打开存档配置文件。

    3. 将生成配置设置为分发。

        3
  •  9
  •   JJM    14 年前

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

    帮助我解决问题的步骤:

    1. 打开钥匙链访问应用程序
    2. 选择“登录”键链,然后在底部窗格中选择“证书”
    3. 切换到“系统”密钥链,查看两个链中是否都注册了证书。
    4. 删除其中一个
    5. 重新生成应用程序
        4
  •  5
  •   tomwhipple    13 年前

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

    我发现安装Xcode4.2测试版也会导致类似的问题。其中一个嵌入的授权文件被放置在另一个目录中,导致“找不到文件”错误。

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

        5
  •  4
  •   lumi77    13 年前

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

    1. 在“菜单”中,选择“视图”>“导航器”>“显示日志导航器”。日志导航器应显示在左侧。
    2. 在构建列表中,选择引起问题的构建。生成的日志将显示在主视图中。
    3. 滚动到最底部。最后两步应该是 协同设计 验证 那里 验证 步骤包含警告。
    4. 展开 协同设计 并检查用于执行代码签名的参数。
    5. 展开 验证 了解有关错误/警告的更多信息。

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

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

    项目(您的项目)配置(所选配置)目标…

    在我的例子中,我发现在进行存档构建时,应用程序是用开发人员证书签名的。检查构建目标的标题显示,发布配置用于构建存档。补救办法是:

    1. 在菜单中,选择“产品”>“编辑方案”
    2. 在“编辑方案”对话框中,选择 档案文件 生成项(左侧列表)
    3. 变化 生成配置 分布

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

        6
  •  3
  •   Shaggy Frog    14 年前

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

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

    我把这个作为一个bug提交给雷达作为8946204。

        7
  •  3
  •   Merky    14 年前

    这是一个古老的帖子,但我想分享我学到的东西(因为我忘记了这一部分,所以我真的记得了),我试图根据一个广告资料来构建我的项目。我忘记了我需要创建一个单独的应用商店配置文件(Provisioning Portal->Provisioning->Distribution)。这是我提交的第一个应用程序,文档太多,所以我错过了/忘记了这一部分。一旦我创建了应用商店的配置文件并安装在Xcode中,一切都正常工作。只是想把这个扔到外面,以防其他人也有同样的问题。

        8
  •  3
  •   Arndt Bieberstein    13 年前

    由于广岛所说的,你可以在那里改变它: 我只是这样做:

    • 打开组织者
    • 转到设备
    • 配置配置文件
    • 单击要使用的配置文件。在这里,您将看到配置文件标识符键。
    • 通过文本文件(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;
    
    • 保存更改并重新启动项目

    !!!!这就是我在Xcode4工作的原因!!!!

        9
  •  0
  •   Ben Williams    14 年前

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

        10
  •  0
  •   hiroshi Ahmad Sherif    14 年前

    我不确定,但是恢复项目中的那些更改。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;
    
        11
  •  0
  •   Ayub    13 年前

    我只需从keychain中删除分发证书,然后从临时配置文件中再次下载即可修复此问题。

        12
  •  0
  •   Bobjt    13 年前

    生成警告或存档验证错误 “应用程序代码签名验证失败” ,请参见以下网址上的苹果公司的完整潜在原因列表 "How do I resolve the error: Application failed codesign verification?"

    最好的,

        13
  •  -1
  •   ubert    13 年前

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