骚年你要不要UUID?(iOS)

[[[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之后编译变慢也是结果之一呵呵呵呵呵

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容