一、IOS7不能獲得MAC地址
應用在iOS6及以下時,可以正確取道Mac地址,在iOS7上,會返回固定值。
這樣帶來的問題是無法區分具體的iOS設備,有些產品就非常難搞了,目前沒有找到可以區分不同iOS設備的方法。
測試過mac地址,確實會返回固定值02:00:00:00:00:00.以後應該會用廣告id吧advertisingIdentifier
二、使用advertisingIdentifier步驟
[objc] view plaincopy
1、添加框架
AdSupport.framework
2、添加頭文件
#import <AdSupport/ASIdentifierManager.h>
3、使用語句
NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
三、advertisingIdentifier介紹
廣告標示符(IDFA-identifierForIdentifier)
這是iOS 6中另外一個新的方法,advertisingIdentifier是新框架AdSupport.framework的一部分。ASIdentifierManager單例提供了一個方法advertisingIdentifier,通過調用該方法會返回一個上面提到的NSUUID實例。
NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
跟CFUUID和NSUUID不一樣,廣告標示符是由系統存儲著的。不過即使這是由系統存儲的,但是有幾種情況下,會重新生成廣告標示符。如果用戶完全重置系統((設置程序 -> 通用 -> 還原 -> 還原位置與隱私) ,這個廣告標示符會重新生成。另外如果用戶明確的還原廣告(設置程序-> 通用 -> 關於本機 -> 廣告 -> 還原廣告標示符) ,那麼廣告標示符也會重新生成。關於廣告標示符的還原,有一點需要注意:如果程序在後台運行,此時用戶“還原廣告標示符”,然後再回到程序中,此時獲取廣告標示符並不會立即獲得還原後的標示符。必須要終止程序,然後再重新啟動程序,才能獲得還原後的廣告標示符。之所以會這樣,我猜測是由於ASIdentifierManager是一個單例。
針對廣告標示符用戶有一個可控的開關“限制廣告跟蹤”。Nick Arnott的文章中已經指出了。將這個開關打開,實際上什麼也沒有做,不過這是希望限制你訪問廣告標示符。這個開關是一個簡單的boolean標志,當將廣告標示符發到任意的服務器端時,你最好判斷一下這個值,然後再做決定。
示例: 1E2DFA89-496A-47FD-9941-DF1FC4E6484A