目前获取iOS手机唯一标识符通用的方法是通过广告标识符来获得
1 什么是广告标识符IDFA?
广告标识符IDFA是在2012.09年面世,为了是给开发者跟踪商家在移动端投放广告效果的。
2.手机上哪里进行设置?(以iOS11为例)
设置 - 隐私 - 广告
3。为什么通常会使用IDFA作为手机唯一标识符
在早期,苹果有使用UDID来作为唯一识别符,之后由于安全隐私原因,被苹果禁止使用了,之后也有通过MAC Adress 和openUDID等方法 来获取,不过一一被苹果所禁止了。 虽然 IDFA 不是唯一的,不过大部分人都很少去更改,也逐渐被开发者和商家们所接受。
4.获取IDFA的方法
#include
#include
#include
#import
- (NSString *)zx_idfaString
{
NSBundle *adSupportBundle = [NSBundle bundleWithPath:@"/System/Library/Frameworks/AdSupport.framework"];
[adSupportBundle load];
if (adSupportBundle == nil)
{
return @"";
}
else
{
Class asIdentifierMClass = NSClassFromString(@"ASIdentifierManager");
if(asIdentifierMClass == nil){
return @"";
}
else
{
ASIdentifierManager *asIM = [[asIdentifierMClass alloc] init];
if (asIM == nil) {
return @"";
}
else{
if(asIM.advertisingTrackingEnabled)
{
return [asIM.advertisingIdentifier UUIDString];
}
}
}
}
}
复制代码
使用keychain 保存 IDFA
为了防止用户重新设定IDFA,我们可以使用keychain来进行保存,可以借助github上一些工具来完成保存。
感谢知乎提问的参考