NSString *identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

上面的代码在我的两个应用程序中的同一部电话上提供了两个不同的标识符-不同的捆绑包ID,但在我的Apple帐户上创建了两个应用程序ID和两个开发配置文件。

据我了解,如果团队ID相同,则这两个应用程序中供应商的标识符应该相同。错误在哪里?我不明白的是什么?

最佳答案

我现在正在同一个问题上作斗争。 “答案”是根据Apple文档中的预期设计,identifierForVendor被破坏了:



实际情况是,identifierForVendor仅对于使用相同配置文件和签名证书的应用程序是相同的。例如,我在企业环境中有多个应用程序,所有应用程序均为com.mycompany ..

对于使用bundleID com.mycompany.app1。*及其配置文件的应用程序,identifierForVendor相同,但是使用相同签名证书但使用不同配置文件的com.mycompany.app2会产生不同的identifierForVendor值。

编辑:这仅在iOS7中发生,但在iOS6中工作正常。我昨天对此进行了一段时间的测试,可以全天7次重复该问题,但6天内我可以得到预期的结果。

编辑2:苹果已将目标帖子移至identifierForVendor上。他们显然确定了算法问题,并没有解决问题,而是通过文档更改来更改了iOS版本之间的标识符功能。更新的文档链接在下面。 SMH。

identifierForVendor

10-08 07:46