如果我在现有 .ipa 文件上安装 .ipa,供应商 ID 是否会更改或受到影响?

Will Vendor ID change or get affected if I install an .ipa over the existing .ipa file?

目前我面临着一个关于 VENDOR ID 的非常可疑的情况。我正在使用以下代码获取 VENDOR ID:

UIDevice.currentDevice().identifierForVendor!.UUIDString

所以我想知道如果我安装一个版本为 1.2.23 的 .ipa 文件是否会创建不同的供应商 ID,如果我安装另一个 .ipa 文件而不删除它,只需将版本号从 1.2.23 更改为1.2.24?我知道如果我们重新安装供应商 ID 会发生变化,但上述场景是重新安装还是更新?

如果我在另一个现有的ipa 文件上安装一个ipa 文件,它会被视为更新或重新安装吗?因为目前如果我在另一个现有的 ipa 上安装 ipa,我的供应商 ID 会发生变化。任何想法都会对我有所帮助

根据我的经验,如果使用相同的安装方法,UUIDString 是稳定的。

苹果提供了几种安装方式:

  • 从 AppStore 安装
  • 从“OverTheAir”安装 (AdHoc)
  • 从 XCode
  • 安装
  • 等等

只要保持相同的安装方式,UUIDString都是相同的..

示例:

  • 您使用 xCode 开发应用程序并使用您自己的物理设备进行测试,由 xCode
  • 提供新版本
  • 你有一组测试人员。他们收到新版本以通过 AdHoc (OverTheAir) 安装在他们自己的设备上进行测试。

如果您在 xCode 开始构建应用程序并通过 xCode 在您的物理设备上安装该应用程序进行测试,UUID 将是稳定的。

如果您切换到临时安装以向测试组提供该版本,则每台设备的 UUID 将在该设备上保持稳定。

但是:如果其中一位测试人员通过 AppStore 安装应用程序,UUID 将更改为另一个 UUID,并且只要测试人员通过 App Store 安装新版本,UUID 就会再次稳定。

但是:如果他再次开始通过 AddHoc 获取新版本,UUID 将再次更改为新的并且只要他通过 AdHoc 安装获取新版本就会保持稳定..

如果他开始通过应用商店获取新版本,它会再次更改为一个新的不同版本...等等

您可以通过使用不同的目标来克服这个问题。我通常使用三个开发目标:一个用于 alpha 测试,一个用于 beta 测试人员组,第三个用于 App Store 的最终版本。

优点是,这是您的应用程序的三个独立版本(相同的来源,但三个目标版本)。在这些目标版本中,UUID 将保持稳定,因为不同的目标将安装为不同的应用程序。

因此可以在同一台设备上同时拥有您的应用程序的 alpha(由 xCode)、beta(由 AdHoc)和最终版本(由 AppStore)。

设置起来有点棘手,但之后就非常容易使用了。

您可能会发现这些描述有助于获得第一感觉。目标的概念非常强大,本文展示了入门的基础知识: https://medium.com/@andersongusmao/xcode-targets-with-multiples-build-configuration-90a575ddc687

添加到已接受的答案中,以下是附加点

  1. 如果我的 AppStore 应用自动更新或从 AppStore 本身更新,VENDOR ID 保持不变

  2. 如果我通过更改版本号用另一个 dev.ipa 覆盖不同版本的 dev.ipa,那么 VENDOR ID 将相同

  3. 如果我通过更改版本用另一个临时 .ipa 覆盖我的 adhoc.ipa 不同版本,供应商 ID 将相同

  4. 如果我通过更改版本用另一个 adhoc .ipa 覆盖不同版本的 dev .ipa,那么 VENDOR ID 将更改,反之亦然,如果我用 [=37= 覆盖 adhoc.ipa ] 它会改变 Vendor Id

  5. 同样,如果我用 TestFlight 构建或 AppStore 应用程序覆盖我的 dev/adhoc 构建,供应商 ID 将更改