对于从 App Store 下载的相同应用程序,供应商标识符在不同设备中变得相同的异常情况

Unusual case of VENDOR IDENTIFIER getting same in different devices for same app downloaded from App Store

最近我开始 iOS 开发,我的任务是检查 App Store 中已有的应用程序。但是我发现了一些不寻常的事情......当通过我的应用程序登录两个不同的设备时,两个不同的用户是从 App Store 下载的 returns 相同的供应商 ID ......这是预期的吗?因为根据 APPLE DOCUMENTS VENDOR ID MUST BE DIFERENT FOR DIFFERENT DEVICE REARRDBEST REARGRDBEAR if the app is downloaded from App Store .请在此说明。

我使用的代码是:

NSString *UString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
NSLog(@"Vendor ID %@", UString);

经过多次研究和实践,我发现了VendorID的几个特点:

  1. VENDOR ID 对于每台设备都是唯一的,即如果从 App Store 在两台设备上下载相同的应用程序,它肯定会 return 不同的 VENDOR ID。在这种情况下,VENDOR ID 是根据 AppStore 数据计算的

  2. 来自同一供应商的单个设备上的每个应用程序的供应商 ID 都是相同的。也就是说,如果我的设备中有来自名为 A 的供应商的 5 个应用程序......所有这 5 个应用程序将具有相同的供应商 ID。如果我们卸载一个应用程序并再次重新安装,VENDOR ID 将不会改变。要更改供应商 ID,我们必须卸载所有 5 个应用程序。

  3. 如果我们在不同的设备上使用 XCODE 或开发证书安装构建,较新的 iOS 中的供应商 ID 也会发生变化,即每台设备都会有不同的供应商 ID相同的应用程序。在这种情况下,供应商 ID 是根据 BUNDLE ID 计算的。对于较旧的 iOS 2 个应用程序的相似 BUNDLE ID 可能会产生相同的 VENDOR ID。

  4. 供应商 ID 始终是 32 位字符串

  5. VENDOR ID 不是设备标识符,而是 UUID,因此我们无法识别有关设备的详细信息

更新案例

如文档中所述,从应用商店更新应用时不应更改。

如果您正在更新 itunes 安装的应用程序,然后使用 Xcode 或基于临时配置或任何配置的 ipa 更新它,您将获得不同的值。您需要使其保持一致,Adhoc 到 adhoc,dev 到 dev,app store 到 app store。

当供应商只有一个应用程序时安装和重新安装应用程序

除非用户安装了同一供应商的其他应用程序,否则删除并重新安装后此 ID 会发生变化。在您的情况下,同一供应商没有其他应用程序,这意味着 ID 将发生变化,