IdentifierForVendor

Pav*_*vel 6 iphone ios ios6

NSString *identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
Run Code Online (Sandbox Code Playgroud)

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

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

第二个应用

Dan*_*Dan 6

我现在正在打同样的问题."答案"是,在Apple文档中,identifierForVendor按其预期设计被破坏:

假设捆绑包ID采用反向DNS格式,前两个组件用于生成供应商ID.例如,com.example.app1和com.example.app2似乎具有相同的供应商ID.

现实情况是,identifierForVendor仅对使用相同配置文件和签名证书的应用程序完全相同.作为一个例子,我的企业环境中有多个应用程序,所有这些应用程序都是com.mycompany ..

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

编辑:这只发生在iOS7中,但在iOS6中运行良好.我昨天测试了一段时间,并且可以在7天内复制问题,但在6天内我得到了预期的结果.

EDIT2: Apple已经将目标帖子移到了identifierForVendor上.他们显然已经确定了他们的算法问题,而不是修复问题,已经改变了iOS版本之间的标识符功能和文档更改.更新的文档链接如下.SMH.

identifierForVendor


小智 2

这是因为你有 2 个不同的包 ID。

供应商由前两个点分隔字段标识。因此 com.a.app1 和 com.a.app2 具有相同的供应商 (com.a),但 com.b.app3 具有不同的供应商 (com.b)