升级的application-identifier权利字符串与已安装的应用程序不匹配 - >拒绝升级

时间:2015-07-28 14:01:11

标签: ios xcode ios-provisioning ios-enterprise

我有一个现在大约3岁的iOS应用程序。它与企业档案签署。我们已经发布了该软件的七个版本,最近一次是在一年前。目前我们正在尝试新版本,但发现由于iOS8中的新安全规则iOS 8.1.3设备无法升级,必须删除并重新安装。

在研究中,我发现类似的问题适用于使用其他个人资料签署应用的用户,但我们的应用使用相同的个人资料进行签名。该错误声称我们的旧应用程序标识符包含一个通配符,我无法弄清楚,因为我们从未更改过包ID(但是,在开发人员门户网站中,我们所有应用程序的通用appId都是com.company。*)。

我发现如果我使用Xcode 6.4构建应用程序的版本1和版本2,我可以成功升级,如果我使用Xcode 5.1构建应用程序的两个版本,我可以成功升级,问题是在尝试安装时使用Xcode 6.4在使用Xcode 5.1构建的版本上构建的应用程序版本

我们尝试升级时遇到的错误是:

“升级的应用程序标识符权利字符串(6Q39SSX4QT.com.company.appName)与安装的应用程序的应用程序标识符字符串(6Q39SSX4QT.com.company。*)不匹配”

我已经看到一些引用需要在我们的应用程序中包含entitlements.plist文件,我们有一个AppName.entitlements plist文件,但我们的应用程序都没有entitlements.plist文件(我们的其他应用程序没有展示这个问题虽然自Xcode 5.1发布以来已经多次升级。)

有人有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:17)

  1. 打开Xcode - >窗口 - >设备
  2. 点击您的设备,然后从已安装的应用列表中删除您尝试安装的应用。
  3. 立即试试。

答案 1 :(得分:1)

在进一步阅读后,我发现this answer有帮助。在我的情况下,我正在通过一个grunt脚本构建,因此我可以修改我的存档/签名/包步骤以在代码签名步骤中插入权利。

如果您按照我链接的步骤操作,您需要确保您的entitlements.plist文件包含通配符,如下所示:

shell=True

如果您手动执行应用打包,可能需要查看iResign。这将为您创建entitlements.plist文件,并在签署您的应用程序时将其注入。

我希望Apple提供更好的文档。无论我在目标的Code Entitlements设置中指定什么,我都无法在XCode中获得相同的效果。

答案 2 :(得分:0)

我刚刚遇到此错误 - 这是因为我更改了用于签署应用程序的开发团队。即我使用我们公司的分销资料签署开发版本和客户的分发资料以签署发布版本。

检查权利中的团队ID是否是正确的团队ID(打印在错误消息中) - >那么它的安装应用程序是错误的。还要检查您是否在权利文件中指定了应用程序标识符。我根本没有权利文件。

在这种情况下,只需删除设备上的应用并重新安装即可。

克里斯