【问题标题】:Upgrade testing for iOS - application-identifier entitlement does not matchiOS 的升级测试 - 应用程序标识符权利不匹配
【发布时间】:2017-01-30 14:06:51
【问题描述】:

以前使用 Xcode 7.3.1,我能够直接在 iPad 上的应用商店应用程序上构建并测试升级方案,效果非常好。本周我升级到 Xcode 8,当我尝试完全相同的方法时,我不断收到此升级错误

“此应用程序的应用程序标识符权利与已安装应用程序的权利不匹配。这些值必须匹配才能允许升级。”

我尝试了在此线程上发布的多个解决方案,但都没有奏效。我也没有手表应用程序。只是一个简单的 iOS 应用目标。

App installation failed due to application-identifier entitlement

我删除了我的证书和配置文件并重新创建了它们,但仍然是同样的问题。然后我去下载了 Xcode 7.3.1 并再次尝试了完全相同的问题。

现在我卡住了,无法完全测试我的升级方案。

请帮忙!!

【问题讨论】:

  • 我也使用了 Xcode 8 并尝试了他们的“自动签名”、“手动签名”过程,但我仍然遇到同样的错误
  • 如果您在新旧应用程序上都运行codesign -d --entitlements :- path/to/AppName.app/AppName。您在输出中得到相同的应用程序标识符吗?可能 AppID 的前缀与您的团队前缀不同。
  • @Mats,我将“应用程序标识符”与调试应用程序的团队前缀进行了比较,它与 iTunes Connect 上的内容相匹配。我认为我们无法获得直接从设备上从 App Store 下载的应用的权利。
  • 您可以在计算机上的 iTunes 中下载应用程序并从中提取应用程序标识符。
  • 请看这个enter link description here的一些答案

标签: xcode provisioning-profile xcode8 ios-provisioning xcode7.3


【解决方案1】:

要解决此问题,只需从项目设置的常规选项卡中启用“自动管理签名”即可。

我也遇到了直接从 xcode 8 在我的设备上运行应用程序的问题。删除和生成配置文件和证书对我不起作用。但是启用“自动管理签名”对我有用。

希望这会有所帮助!

检查我的这个问题: Xcode 8 shows error that provisioning profile doesn't include signing certificate

【讨论】:

  • 我附上了我收到的错误图片,该图片与您链接中提到的错误不同。
【解决方案2】:

从设备中删除现有应用程序并再次运行。

【讨论】:

  • 为什么人们在不提及原因的情况下投反对票。
  • 我猜是因为问题是关于“升级”的
  • 我们将应用程序的所有权从公司 A 转移到公司 B(我们)。开发设备仍然安装了 A 公司的版本。从设备中删除公司 A 应用程序并按预期构建解决了该问题。
  • 尝试从 xcode 预引用中删除现有配置文件并添加新的公司配置文件。构建干净并再次构建并运行
  • @Jon 我们也在做同样的事情。这只是在测试期间从 xCode 安装时的问题吗?更新到 App Store 后,公众可以升级吗?
【解决方案3】:

我是从作为 Jenkins 人工制品生成的 .ipa 中获得的。对我来说,问题是 Jenkins 使用了不同的配置文件。

我手动将 Jenkins 设置为使用与我尝试安装的更新版本相同的配置文件,并且它开始工作。

【讨论】:

    【解决方案4】:

    如果您想在不删除现有 App Store 应用程序的情况下升级现有应用程序但您的应用程序标识符权利不匹配,这是一种解决方案。将新构建的存档上传到 App Store,然后使用 TestFlight 将其下载到您的设备。这不如构建到设备上那么快,但它会用新构建覆盖旧应用程序,同时保留旧数据。一旦您在 TestFlight 上有一个可用的新版本,为了(相对)更快地对您的升级过程进行周转测试:

    1. 从您的设备上删除您的应用(假设它是最新版本)
    2. 下载您的应用商店构建并生成一些数据
    3. 下载您的 TestFlight 版本,但不要运行它
    4. 直接在设备上构建您的最新版本

    TestFlight 版本会覆盖权利而不删除旧数据,因此 Xcode 会很高兴地在 TestFlight 版本上安装您的新版本,但您仍在测试升级过程,就好像您直接在 App Store 版本之上进行构建一样你的应用程序。

    【讨论】:

      【解决方案5】:

      我在尝试升级应用程序时遇到了同样的问题。 在这里我发现了什么:

      我检查了旧应用程序和新应用程序的应用程序标识符权利。您可以通过运行codesign -d --entitlements :- path/to/AppName.app/AppName 或在路径“AppName.app/AppName”处打开文件“archived-expanded-entitlements.xcent”来做到这一点。

      旧应用的应用程序标识符为“1234XXX5X6.com.mycompany.myapp”,但在新应用中为“1234XXX5X6.com.mycompany.myapp.develop”。

      通常我直接在Info.plist中设置“Bundle Identifier”。

      但我不知道项目Build Settings中还有一个“Product Bundle Identifier”属性。

      以前的版本的应用是用 Xcode 7.3.1 构建的,它有以下设置:

      • Info.plist:com.mycompany.myapp
      • 构建设置:com.mycompany.myapp.develop
      • 应用程序标识符:1234XXX5X6.com.mycompany.myapp

      版本是用 Xcode 8.2.1 构建的,它有以下设置:

      • Info.plist:com.mycompany.myapp
      • 构建设置:com.mycompany.myapp.develop
      • 应用程序标识符:1234XXX5X6.com.mycompany.myapp.开发

      似乎新的 Xcode 有不同的应用程序标识符来源。 所以我只是更正了“Product Bundle Identifier”,我的问题就解决了。

      【讨论】:

        【解决方案6】:

        选择应用程序目标并单击常规,如果您选择或勾选复选框自动管理签名。

        取消勾选此自动管理签名并选择适当的签名配置文件和#Build 并再次运行。

        见下图。

        【讨论】:

          【解决方案7】:

          已解决!!简短回答 - 从 iPhone 中删除旧应用 我去了我的 iPhone 存储并使用搜索栏找到了有问题的应用程序(因为它没有显示在应用程序列表中),发现隐藏的旧版本,删除它,现在它可以工作了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-02-19
            • 2011-09-16
            • 1970-01-01
            • 2015-04-06
            • 2017-07-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多