iOS应用“无法验证该应用”仅在一台设备上


235

我有两个iphone设备(4s和5)连接到我的计算机,并且我试图在两个设备中安装一个应用程序。它在iphone 5中安装得很好,但是给出了错误“ The application could not be verified。”。尝试在iphone 4s设备上安装时。

这两个设备的UDID已添加到为应用程序生成的配置文件中。

另外,要添加注释,我刚刚在4s设备中将iphone版本更新为8.1.3。我不确定该错误是否与它有关。

任何帮助,将不胜感激。我已经坚持了一段时间。

编辑:

我刚刚将其连接到另一部iPhone设备,问题似乎再次出现。基本上,这意味着该应用程序由于某种原因只能安装在我已经使用了一段时间的电话中,而不能安装在其他任何电话中。再一次,我很确定供应配置文件包含所有这三个设备的UDID。

Answers:


479

最近我也发生了类似的事情。我将iPhone更新到8.1.3,并开始从Xcode上收到“无法验证应用程序”错误消息,该应用程序几天前刚从同一台Mac安装在同一iOS设备上。

我从设备上删除了该应用程序,重新启动了Xcode,随后将其安装在设备上的应用程序运行正常,没有任何错误消息。不知道删除该应用程序是否已解决,还是问题出在“月相”。


我没有在手机中卸载我的应用程序,然后尝试:)这是我第一次在此设备上进行安装。
Sunil,2015年

谢谢!我一直想弄清楚为什么在模拟器上不起作用,我一直在挣扎。我希望苹果公司允许使用模拟器进行所有操作的完整开发。
Christopher Wade Cantley,2015年

还有报告删除并重新安装一个开发人员测试应用程序,从而允许其他开发人员测试应用程序(未删除)从Xcode重新安装,而不会出现错误消息。
hotpaw2

一个随机的猜测是,该应用程序的任何旧安装都留下了一些东西(Apple未记录),使更新的8.1+校验和或代码签名方法不受欢迎,因此认为新安装已损坏。删除旧的应用程序将摆脱剩下的所有内容。
hotpaw2

2
该应用未安装。您如何删除它?如何将其视为有效答案?
BTRUE

116

我注意到该应用程序无法验证。出现问题是因为您的设备中已经安装了具有相同捆绑包标识符的应用。

我遇到了这个问题,因为在我的设备中有我的应用程序可以从App Store下载。我从Xcode测试其更新版本。我使用的标识符与实时应用程序和开发测试应用程序相同。因此,我只是从设备上删除了应用商店实时应用,此错误将得到解决。


2
谢谢!就我而言,我从苹果商店下载了该应用程序,但后来想从设备上的源代码和配置文件中构建它。
Valentin Simonov 2015年

1
这对我有用。必须删除已安装的应用程序。
sach 2015年

9
是的,这也对我有用。说真的,这惹恼了我。每年,Apple都会自豪地宣布其最新的Xcode奇妙之处,但它仍然会产生任何开发环境中最无用的消息。“无法验证应用程序。” 链接到“您的设备上已经安装了该应用程序的App Store版本”的句子到底是怎么回事。绝望。Grrrr ...
Mike Gledhill

是的,我的修复是通过删除手机中的先前版本进行的。xcode的消息很糟糕。
兰迪L

2
删除它无助于测试“升级”应用程序路径
bandejapaisa 2015年


25

插入新设备时,您可能在Xcode中使用了“修复问题”选项。旧问题,但我相信这是为什么发生这种情况的实际答案。在设备上安装应用程序时,将使用特定的开发配置文件进行签名。例如,如果您插入未在开发人员帐户中注册的另一台设备,则Xcode会要求您“解决问题”。当您按下该设备时,即会添加/配置另一个配置文件。如果您尝试覆盖现有的应用,则会收到该错误。由于配置文件已更改,因此删除应用程序并重新安装即可。我发现,当组队成立并且成员插入新设备然后Xcode“修复”问题时,通常会发生这种情况。


1
它并不总是与新设备相关,如果在Xcode的“常规”>“身份”部分中切换“团队”,也会发生这种情况。即使显示了“修复问题”提示,但我之前还是用我的开发人员帐户使用了这部手机,因此在我的情况下,一定是由于更改了开发人员帐户。
whyoz

如果启用了“钥匙串共享”权利,则可能会发生这种情况。
Kof

在功能中启用iCloud之后,这件事发生了。相关的“修复问题”创建了新的权利,这可能是确切的原因。删除并重新安装该应用程序很有帮助。
格雷格

9

可能已经知道了...从设备上删除该应用程序对我来说很有效,就像其他人之前提到的(谢谢!)。

我认为原因是设备上的应用程序实际上是使用单独的配置文件(在我的情况下特别是分发配置文件)签名的。


7

对于不使用RubyMotion的其他人,不要以为删除应用程序是可以接受的(例如,您要进行升级测试)。从Apple查看以下文档的底部:

https://developer.apple.com/library/ios/technotes/tn2319/_index.html

看来他们在8.1.3中做了一些更改以检查此新规则。

修复

“ [添加]已安装的应用程序的应用程序标识符值,如第二个括号中所记录,将其添加到正在安装的应用程序的先前应用程序标识符权利的数组值中(通过注销或重新构建它)并请求新的特殊供应配置文件如下所示。”

<key>previous-application-identifiers</key>
<array>
    <string>{Your Old App ID Prefix}.YourApp.Bundle.ID</string>
</array>

编辑:

为此,您需要特殊的配置文件。您可以从Apple要求这些:“要启用具有先前应用程序标识符授权的签名,需要新的特殊配置文件,可以通过联系美国页面并请求它们来获取这些文件。” (来自上面链接的文档)。


这是可以接受的答案,因为删除应用程序并不是真正的解决方案,而是解决方法。
卢卡斯2015年

您能否简要说明我们需要在哪里进行更改?我有同样的问题。
Maulik

我不是这方面的专家,但是我认为这只是Apple已将os新增的一项安全功能。从某种意义上讲,您不应该能够使用不同的bundle-id覆盖应用程序,但是他们意识到测试需要它,因此请包括此替代方法。可悲的是,由于它涉及到与苹果的联系,所以我认为苹果的解决方法还不够好...
plivesey

从我们的角度来看,这基本上只是升级测试的另一项要求。
plivesey

@plivesey对我来说至关重要的是,能够在不删除应用程序的情况下做到这一点(大量有价值的测试数据等),并找到更简单的解决方案:stackoverflow.com/a/30617406/229229
Lukasz

6

我经常面对这个问题。我不确定这是否是问题,但是我认为,当xCode看到有一个应用程序具有与该应用程序相同的包标识符时,我正在尝试安装,但它不允许我这样做。因此,我不得不删除较旧的版本并尝试安装并成功运行。但是有时出于测试目的,我需要同一个应用程序的多个版本,在这种情况下,我将更改捆绑包标识符并尝试安装。仅当我使用通配符配置文件时,它才有效。


是的,通常会在添加权利后发生
Brainray 2015年


3

经过测试的有效解决方案,不需要删除应用程序:

看起来AppStore分发配置文件或只是iOS分发证书具有特殊权限,并且“无法验证...”问题不适用于它们。他们将始终覆盖以前的证书

换句话说:即使已经安装(测试,即席或企业版)的应用程序已经由来自不同团队的证书签名,AppStore版本也将成功安装。

如果您很幸运,并且以前曾将应用程序上载到与证书颁发者相同的团队拥有的AppStore帐户中,那么问题就很简单-事情很简单:只需从AppStore下载并安装应用程序即可。

安装时-应用程序证书将与您要测试的证书相同,并且问题消失了。

如果您的应用尚未在AppStore上-iTunesConnect beta可以助您一臂之力

免责声明:我没有对此进行测试,但是由于cert prev与AppStore版本相同,因此我敢保证它可以正常工作:

  1. 使用AppStore配给配置文件(iOS分发证书)存档您的应用程序,然后上传到iTunesConnect(与您不想运行的配给配置文件中包含的开发者团队拥有的帐户相同)。
  2. 邀请您要在其上运行设备的人(您自己?)进行Beta测试。
  3. 从iTunes connect beta下载并安装该应用程序。
  4. 现在,您可以安装测试版本了。

3

无法验证该应用程序”,则您的设备中可能已经安装了具有相同包标识符的应用程序。

如此简单的解决方案只需删除该应用程序,然后重试。


2

TL; DR答案-除了“删除应用程序并重新安装”之外,没有真正的解决方案。

当您拥有不需要在应用程序内删除的现有数据库时,在许多情况下此答案都不令人满意。

卢卡斯(Lukasz)和普利维西(plivesey)是仅有的不需要删除但对我没有用的解决方案。


1

我通过将Build System更改为xcode中的legacy解决了此问题。

我遇到了同样的问题,但是上面提到的解决方案对我不起作用。即使设备上没有以前的应用程序,在设备上进行部署时也遇到此错误。

怎么做:

只需简单地转到菜单File> Project Setting,在Share Project Settings中,将Build System从“ New Build System(默认)”更改为“ Lagacy Build System”。


0

我也遇到了同样的问题。删除该应用程序不起作用,但是当我尝试删除另一个应用程序时,该应用程序是当前应用程序的“父级”(我从先前的应用程序复制了整个项目,修改了一些网址和图片,然后单击“运行”并看到了不满意的内容“无法验证”对话框)。该问题似乎与项目的供应和代码签名和/或某些配置有关。非常棘手。


0

我已经更换了团队,但我忘记在“测试”目标中对其进行更改,因此导致了这一点。也许这可以帮助某人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.