题
我的应用具有一个需要识别每个应用程序用户的功能。我正在计划使该应用发送给我的服务器。服务器存储它,供以后使用。我不认为这是个人信息,但是,我想知道它是否可以在Apple的Appstore中获得批准。
并且,包括传输电话号码。就WhatsApp而言,它会自动识别我的朋友的数字。我认为没有某种数据传输是不可能的。
解决方案
您可以将设备的UDID传输到服务器。这就是它的目的。
其他提示
访问UDID是从App Store拒绝的理由。看到使用udid的替代方案 https://stackoverflow.com/a/10037636/1286639
只需确保您的应用程序做什么,这不是秘密。如果它传输电话号码以存储在服务器上的电话号码,请在应用程序的描述中清楚地提及该电话号码,甚至首次向用户征求用户许可。
我认为这实际上是被拒绝的理由:不清楚将用户的数据存储在您自己的服务器/服务上。
重要的是要注意尿素和uuid之间的差异。
UDID“唯一设备ID”是硬件特定的。它永远不会改变特定设备。因此,它已成为隐私问题,苹果正在阻止使用此功能的应用程序。结果,苹果已经生成了可选的“设备ID”哈希,尤其是用于广告使用情况。此新的ID哈希称为IFA,可在iOS 6.0+中使用。
UUID“普遍唯一的ID”不是特定于硬件的。它是用于识别设备的哈希。但不是特别的绝对价值。例如,PhoneGap基于设备属性生成UUID;这就是您进行device.uuid时所得到的。如果删除应用程序并重新安装,则将获得一个新的ID哈希。 uuid并没有被苹果阻止。
我认为您的情况下最好的解决方案是使用IFA,而OpenUdid作为iOS <6.0的备份。
这是我们使用的代码。如果没有IFA,请获得OpenUdid。 [[您必须安装openudid,在此处阅读更多信息,https://github.com/ylechelle/openudid。]
NSString* uuid = nil;
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
// IOS 6 new Unique Identifier implementation, IFA
uuid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else {
// Before iOS6 (or if IFA disabled) you shoud use a custom implementation for uuid
// Here I use OpenUDID (you have to import it into your project)
// https://github.com/ylechelle/OpenUDID
NSString* openUDID = [OpenUDID value];
uuid = [OpenUDID value];
}