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

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

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

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

编辑:

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


当前回答

给那些没有使用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>

编辑:

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

其他回答

刚刚也遇到了同样的问题,我发现问题是证书过期了。 我的应用程序通过firebase分发(AdHoc),几天前应用程序工作得很好。 今天我意识到我无法安装它,因为“应用程序无法验证”。

最后我意识到我用于应用程序签名的证书已经过期2天了。 您需要再次上传它,然后才能安装它。

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

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

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

在我的iPad上运行8.1.3删除应用程序并重新安装解决了这个问题。我在两台不同的机器上使用了两个不同的配置配置文件,这可能导致了这个问题。

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.

我通过在xcode中将构建系统更改为遗留系统来解决这个问题。

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

怎么做:

简单地,转到菜单文件>项目设置,在共享项目设置中,将构建系统从“新构建系统(默认)”更改为“Lagacy构建系统”。