iphone - 供应商标识符

标签 iphone ios ios6

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

上面的代码在我的两个应用程序中的同一部手机上给出了两个不同的标识符 - 不同的包 ID 但在我的 Apple 帐户上创建了两个应用程序 ID 和两个开发配置文件。

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

second app

最佳答案

我现在正在处理同样的问题。 “答案”是 identifierForVendor 根据其在 Apple 文档中的预期设计被破坏:

The bundle ID is assumed to be in reverse-DNS format, and the first two components are used to generate a vendor ID. For example, com.example.app1 and com.example.app2 would appear to have the same vendor ID.

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

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

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

EDIT2:Apple 已将目标帖子移到 identifierForVendor 上。他们显然确定了他们的算法问题,并且没有解决问题,而是通过文档更改更改了 iOS 版本之间标识符的功能。更新的文档链接如下。 SMH.

identifierForVendor

关于iphone - 供应商标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528978/

相关文章:

ios - 为什么 `transform.rotation` 可用于 CoreAnimation,但无法使用 getter 访问?

android - 如何在更新的 ionic 3 的移动应用程序中获取图像的自动幻灯片旋转?

ios - 为什么我的 Cordova WebView 有额外的 20px 滚动?

ios - 检查 AVPlayer 的播放状态

iOS 6 在模态呈现的 View Controller 中推送 View Controller

ios - 如何在 SceneKit 中创建边框?

ios - 我怎样才能回到我的主处理线程?

IOS:如何在 UIWebview 中加载本地文件,例如:.png、.doc、.pdf 等

iphone - 可以使用导航栏返回到上一个 View 而不丢失 View 的数据吗?

iphone - NSSearchPathForDirectoriesInDomains 解释混淆