我有一些应用程序的捆绑ID具有相同的前缀,例如,com.mycompany.app1
和com.mycompany.app2
,尽管他们的Apple开发人员帐户不同。
在开发中,我可以通过调用identifierForVendor
获得相同的值。但是当它们在App Store上提交时,它们会彼此不同。
identifierForVendor section in Apple Documentation中描述的以下段落使我感到困惑。
通常,供应商由App Store提供的数据确定。如果未从应用商店安装应用(例如仍处于开发阶段的企业应用和应用),则会根据应用的捆绑ID计算供应商标识符。假设捆绑ID是反向DNS格式。
当应用程序已经在App Store上时,Apple不会告诉我们App Store如何确定供应商。
我收集了一些识别设备的方案。
就像在问题中写的那样,IDFV对于来自同一设备上运行的同一供应商的应用程序是相同的。
通常,供应商由App Store提供的数据确定。如果未从应用商店安装应用(例如仍处于开发阶段的企业应用和应用),则会根据应用的捆绑ID计算供应商标识符。
参考:https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor?language=objc
与IDFV不同,所有供应商都返回相同的值。该标识符可以改变 - 例如,如果用户擦除设备。在iOS 10.0及更高版本中,当用户的广告跟踪有限时,advertisingIdentifier的值全为零。
如果开发者尝试在不提供广告的情况下获取IDFA,则可能会拒绝该应用。
来自同一团队ID的应用也是如此。
对于来自同一Apple Developer帐户的应用程序也是如此。可从iOS 11获得。
参考:https://developer.apple.com/documentation/devicecheck?language=objc
来自同一团队ID的应用也是如此。此方案已弃用。
参考:https://github.com/ylechelle/OpenUDID
来自同一团队ID的应用也是如此。