summaryrefslogtreecommitdiffstats
path: root/base/ios/device_util.mm
diff options
context:
space:
mode:
Diffstat (limited to 'base/ios/device_util.mm')
-rw-r--r--base/ios/device_util.mm8
1 files changed, 6 insertions, 2 deletions
diff --git a/base/ios/device_util.mm b/base/ios/device_util.mm
index 1d16de4b..e6801ab 100644
--- a/base/ios/device_util.mm
+++ b/base/ios/device_util.mm
@@ -5,7 +5,7 @@
#include "base/ios/device_util.h"
#include <CommonCrypto/CommonDigest.h>
-#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
#include <ifaddrs.h>
#include <net/if_dl.h>
@@ -13,6 +13,7 @@
#include <sys/socket.h>
#include <sys/sysctl.h>
+#include "base/ios/ios_util.h"
#include "base/logging.h"
#include "base/string_util.h"
#include "base/stringprintf.h"
@@ -103,7 +104,10 @@ std::string GetDeviceIdentifier(const char* salt) {
NSString* client_id = [defaults stringForKey:kClientIdPreferenceKey];
if (!client_id) {
- client_id = base::SysUTF8ToNSString(GetRandomId());
+ if (base::ios::IsRunningOnIOS6OrLater())
+ client_id = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
+ else
+ client_id = base::SysUTF8ToNSString(GetRandomId());
[defaults setObject:client_id forKey:kClientIdPreferenceKey];
[defaults synchronize];
}