在我们日常开发中可能还会涉及到设备唯一ID的情况,就是用户的账号首次要和设备绑定,然后后面就不能再绑定其他设备了,关于设备唯一性的介绍可点击这个链接进行查看,我就不再累述了。
设备唯一性ID介绍(点我点我)
这里我要说明的是一种实际情况,那就是当我们的APP采用企业签名的时候,就是不上架到App Store发布,这个时候可能会遇到一种情况,当我们的APP掉线后使用其它的企业号再次进行了签名,这样就可能出现设备号不一样的情况。上文中讲述了好几种方式,下面我讲一下两种情况下设备唯一性的采用方案:
一、上架到App Store进行发布
采用文中使用keychain进行保存的方式,相关demo和方法我也从github给大家准备了一个,仅供大家参考。
获取UUID的demo
这种方式对于上架到App Store的APP是很实用的!
二、采用企业号签名进行发布的APP
采取企业号签名方式发布的APP,如果能保证100%不掉线的话,方式一的方法也是可以的,但是采用企业号签名的方式很难保证100%不掉线,所以这个时候我们就要换一种思路了,经过实测对比和理论结合实际分析,推荐的方式是使用广告标识符,使用这个作为签名发包APP的设备唯一ID。
#import <AdSupport/AdSupport.h>
NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
不过为了使用方便,我已经在实际中写成了单例的形式来使用,同时奉上代码:
.h文件,如下:
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface MZGetADID : NSObject
+(NSString *)getUUID;
@end
NS_ASSUME_NONNULL_END
.m文件,如下:
#import "MZGetADID.h"
#import <AdSupport/AdSupport.h>
@implementation MZGetADID
//获取广告唯一标识
+(NSString *)getUUID{
NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
DLog(@"adId:%@",adId);
return adId;
}
@end
希望以上对大家有所帮助,同时如果需要进行企业签名不上架App Store就进行发布APP的大家也可以联系我,QQ:834537795.(小蜜蜂)
网友评论