骚年你要不要UUID?(iOS)

2017-03-11  本文已影响106人  神秘唤猫人

[[[UIDevice currentDevice]identifierForVendor] UUIDString];

[NSUUID UUID].UUIDString;

这两个~ 都会变!

同一个开发者的app会公用一个uuid,

但是这个开发者的app被删光的时候, 再安装他的任意app, 生成的uuid都是会变的~

结论的话 只能生成UUID后用钥匙串存啦

然后有机智的骚年担心了: iCloud这个东西可以同步啊, 别的设备不也拿到了吗, 那还算什么唯一

这个钥匙串啊, 可以设置所存数据只用在单一设备上, 备份也转移不走

钥匙串的API还是不友好啊, 墙裂推荐一个 KeychainAccess

他是swift写的, 我们只要把他的这个swift文件(1个)拷到我们项目里就可以, 不用什么pod\carthage什么的

如果oc项目要用的话, 可以新建个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之后编译变慢也是结果之一呵呵呵呵呵

上一篇下一篇

猜你喜欢

热点阅读