应用程序未能通过代码签名验证

7

当我尝试将我的应用提交到应用商店时,出现了以下错误。我已经完成了初始的配置过程,并且能够在我的手机上运行该应用程序,所以不确定出了什么问题。

Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate.

编辑:我尝试下载和安装发布配置文件,但仍然出现错误。我需要在XCode中将这个新的配置文件与我的应用程序链接起来吗?谢谢!

编辑2:我现在已经从Apple获得了一个发布的配置文件,并尝试使用它进行编译。但是出现错误:“未找到此可执行文件的有效配置文件。”


你尝试过重新启动Xcode / 你的iPhone / 你的电脑了吗? - jtbandes
是的,我尝试了所有方法。甚至创建了一个新的应用程序。 - Ian McIntyre Silber
你是否试图在你的设备上安装分发版本的构建?那是行不通的。使用应用商店分发配置文件构建的版本仅适用于提交给App Store(当使用已发布的非beta SDK进行构建时)。 - hotpaw2
9个回答

14

请确认以下内容:

  • 创建分发配置文件时,请确保分发方式为"应用商店"
  • 在项目设置中,转到“构建”选项卡,并确保代码签名标识是您为应用商店创建的分发配置文件。
  • 在目标设置中(双击您项目中的目标),转到“构建”选项卡,并确保代码签名标识是您为应用商店创建的分发配置文件。

建议您在项目设置中为AdHoc和App Store版本构建创建一个配置。我发现这样做可以使部署更加轻松。


1
这是正确的答案,但更准确地说...在构建分发时,请确保在项目设置中使用“iPhone Distribution”设置来进行配置文件的配置,这与“iPhone Development”不同。因此,建议使用两个单独的配置(我通常有“模拟器”,“设备”,“AdHoc”和“部署”)。 - samkass

3
针对Xcode构建警告或存档验证错误“应用程序未通过代码签名验证”,请参阅苹果公司在“如何解决错误:应用程序未通过代码签名验证?”中列出的潜在问题列表。
针对错误“找不到此可执行文件的有效配置文件”,通常在尝试通过Xcode在设备上运行您的应用程序时会出现此错误,但您提到正在将应用程序上传到商店?请确保您按照“提交应用程序到App Store的步骤”推荐的步骤上传iOS应用程序到商店。
对于其他人收到的错误“找不到此可执行文件的有效配置文件”,请检查您是否按照苹果公司在“通过Xcode在设备上运行应用程序的步骤”中推荐的步骤进行操作。

非常感谢,伙计——我在这上面花了2天时间! - TheLearner

1

您可以双击.mobileprovision文件,或手动将其复制到~/Library/MobileDevice/Provisioning Profiles。然后它将出现在目标设置中的预配弹出窗口中。


我应该在哪里找到.mobileprovision文件? - Ian McIntyre Silber
好的,我从苹果得到了一个移动配置文件。现在当我尝试编译时出现以下提示:“没有找到此可执行文件的有效配置文件。”然后构建失败了。有什么想法吗? - Ian McIntyre Silber

1

为项目和活动目标设置预配资料。

点击“项目” -> “编辑项目设置”,更改代码签名实体。 点击“项目” -> “编辑活动目标”,同样在此处更改相同的代码签名实体。

您应该可以开始了!


无需在目标上进行设置,目标将继承项目的设置。 - bstahlhood

0

我遇到了相同的问题,因为iCloud KVStore作为能力处于活动状态:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.icloud-container-identifiers</key>
    <array/>
    <key>com.apple.developer.ubiquity-kvstore-identifier</key>
    <string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
</dict>
</plist>

当我尝试将'com.apple.developer.ubiquity-kvstore-identifier'标识符更改为主应用程序KVStore标识符时,Xcode无法对二进制文件进行签名,如为多个应用程序配置公共键值存储所述。


0

我曾经遇到过同样的问题,以下是我解决的方法:

原来我的许可证文件格式错误。

经过多次尝试和研究,我已经找出了问题所在。为了其他人的健康,请参考下面的正确配置:

application-identifier          $(AppIdentifierPrefix)$(CFBundleIdentifier)

com.apple.developer.ubiquity-container-identifiers
      Item 0                     $(TeamIdentifierPrefix)$(CFBundleIdentifier)

这样做可以成功验证。我在文档中找不到相关内容,希望能帮助其他人。


0
你确定你的配置文件是发布到应用商店的分发配置文件,而不是开发/内部测试的配置文件吗?

我刚刚下载并安装了一个分发配置文件,但我仍然收到错误提示。我需要在XCode中将这个新的配置文件与我的应用程序链接起来吗?谢谢! - Ian McIntyre Silber

0

这里有一个未列出的解决方案,它最终成为了我的问题(并花费了我3天时间才找到!)。将您的存档构建配置设置为“发布”。您可以通过进入PRODUCT->EDIT SCHEME->ARCHIVE->BUILD CONFIGURATION->SET TO RELEASE来完成此操作。

祝好运!


0

这个错误也可能是由于不正确配置应用程序的"权利"而引起的。检查的好地方是在Xcode的日志导航器(左侧选项卡中的最后一页)中查看警告,并确保在存档项目时构建日志旁边都有绿色勾选标记,包括CodeSign和Validate步骤。


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