我有两个iphone设备(4s和5)连接到我的电脑,我试图在两个设备上安装一个应用程序。它在iphone 5上安装得很好,但它给出了一个错误“应用程序无法验证”。在试图安装到iPhone 4s设备时。

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

另外,补充说明一下,我刚刚在我的4s设备上把我的iphone版本升级到8.1.3。但我不确定这个错误是否与此有关。

任何帮助在这方面将非常感激。我已经被这个问题困扰了一段时间了。

编辑:

我刚刚把它连接到另一个iPhone设备上,问题似乎又出现了。基本上,这意味着应用程序,出于某种原因,只安装在我已经使用了一段时间的手机,而不是在任何其他手机。同样,我非常确定配置配置文件包含所有这3个设备的udid。


当前回答

我注意到申请无法被验证。Raise up是因为在您的设备中已经安装了具有相同bundle标识符的应用程序。

我遇到这个问题是因为在我的设备上有我从应用商店下载的应用程序。和我测试它的更新版本从Xcode。我使用相同的标识符,是live应用程序和我的开发测试应用程序。所以我只是从我的设备中删除app-store live应用程序,这个错误将被修复。

其他回答

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

这个答案在许多情况下并不令人满意,当你有一个现有的数据库,不需要在应用程序中删除。

Lukasz和plivesey是唯一有不需要删除的解决方案的人,但对我来说都没用。

给那些没有使用RubyMotion并且认为删除应用是不可接受的人(比如,你想做升级测试)。看看下面这些来自苹果的文档:

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

看起来他们在8.1.3修改了一些东西来检查这个新规则。

修复

“[添加]第二个圆括号中记录的已安装应用程序的application-identifier值,到正在安装的应用程序的前一个application-identifier授权数组值(通过重新命名或重新构建它),并请求新的特殊配置配置文件,如下所示。”

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

编辑:

为了做到这一点,您需要特殊的配置文件。你可以向苹果请求这些: “要启用与以前的应用程序标识符授权的签名,需要新的特殊配置文件,可以通过访问联系美国页面并请求它们来获得。”(从上面链接的文档)。

我已经改变了团队,但我忘记在我的测试目标中改变它,所以它造成了这个问题。也许这能帮到别人。

我最近也遇到过类似的事情。我把我的iPhone升级到8.1.3版本,几天前在同一台Mac上安装在同一台iOS设备上的应用程序开始收到来自Xcode的“应用程序无法验证”错误消息。

我从设备上删除了应用,重新启动Xcode,应用随后安装在设备上,没有任何错误消息。不确定删除应用程序是解决问题的方法,还是因为“月相”。

You probably used the "Fix Issue" option in Xcode when plugging in a new device. Old question but I believe this is the actual answer to WHY this is happening. When you install an app on a device it is signed with a specific development provisioning profile. If, for instance, you plug in another device that is not registered on your developer account Xcode will ask you to "fix the issue". When you press that the device is added and another provisioning profile is created/modified. If you try to overwrite an existing app you'll receive that error. Deleting the app and reinstalling it works since the profile has been altered. I find this often happens when a Team is set and a member plugs in a new device then Xcode "Fixes" the problem.