騷年你要不要UUID?(iOS)

[[[UIDevice currentDevice]identifierForVendor] UUIDString];

[NSUUID UUID].UUIDString;

這兩個~ 都會變!

同一個開發(fā)者的app會公用一個uuid,

但是這個開發(fā)者的app被刪光的時候, 再安裝他的任意app, 生成的uuid都是會變的~

結(jié)論的話 只能生成UUID后用鑰匙串存啦

然后有機(jī)智的騷年擔(dān)心了: iCloud這個東西可以同步啊, 別的設(shè)備不也拿到了嗎, 那還算什么唯一

這個鑰匙串啊, 可以設(shè)置所存數(shù)據(jù)只用在單一設(shè)備上, 備份也轉(zhuǎn)移不走

鑰匙串的API還是不友好啊, 墻裂推薦一個?KeychainAccess

他是swift寫的, 我們只要把他的這個swift文件(1個)拷到我們項(xiàng)目里就可以, 不用什么pod\carthage什么的

如果oc項(xiàng)目要用的話, 可以新建個XXManager.swift文件, 然后把KeyChainAccess的代碼往里面一拷貝嘿嘿

用自己的奇思妙想封裝一下, 如下圖


class KCManager: NSObject {

func checkUUID() -> Bool {

let keychain = Keychain(service: "你的bundleID").accessibility(.alwaysThisDeviceOnly)

let uuidres = keychain["隨便來個鍵名"]

if uuidres == nil{

return false

}else{

return true

}

}

func writeUUID(uuid: String) -> Void {

let keychain = Keychain(service: "你的bundleID").accessibility(.alwaysThisDeviceOnly)

keychain["隨便來個鍵名"] = uuid

}

func readUUID() -> String {

let keychain = Keychain(service: "你的bundleID").accessibility(.alwaysThisDeviceOnly)

return keychain["隨便來個鍵名"]!

}

}


然后就隨便折騰啦啦啦啦, OC橋接swift之后編譯變慢也是結(jié)果之一呵呵呵呵呵

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容