大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一.UDID(Unique Device Identifier) UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识. 在很多需要限制一台设备一个账号的应用中经常会用到,在Symbian时代,我们是使用IMEI作为设备的唯一标识的,可惜的是Apple官方不允许开发者获得设备的IMEI. iOS5 sdk中的获取方法:[UIDevice currentDevice] uniqueIdentifier] uniqueIdentifier在UIDevice.h中的定义如下:@property(nonatomic,readonly,retain) NSString *uniqueIdentifier __OSX_AVAILABLE_BUT_DEPRECATED(__MAC意思是iOS2.0以上及iOS5.0以下的系统可用,但不建议使用.Apple有可能在iOS5.0之后删除该函数.iOS6之后 换成 [[UIDevice currentDevice] identifierForVendor];但是我们需要注意的一点是,对于已越狱了的设备,UDID并不是唯一的.使用Cydia插件UDIDFaker,可以为每一个应用分配不同的UDID.所以UDID作为标识唯一设备的用途已经不大了 二.UUID(Universally Unique Identifier)UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码. 由网上资料显示,UUID是一个软件建构的标准,也是被开源软件基金会(Open Software Foundation,OSF)的组织在分布式计算环境(Distributed Computing Environment,DCE)领域的一部份.UUID的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定. 根据以上定义可知,同一设备上的不同应用的UUID是互斥的,即能在改设备上标识应用.但是并没有明确指出能标识出装有同一应用的不同设备,但是根据我推测,这个UUID应该是根据设备标识和应用标识生成唯一标识,再经过加密而来的(纯推测). 三. UUID(Universally UniqueIDentifier) 是基于iOS设备上面某个单个的应用程序,只要用户没有完全删除应用程序,则这个UUID在用户使用该应用程序的时候一直保持不变。如果用户删除了这个应用程序,然后再重新安装,那么这个UUID已经发生了改变。通过调用[[UIDevice currentDevice]identifierForVendor];方法可以获取UUID。UUID不好的地方就是用户删除了你开发的程序以后,基本上你就不可能获取之前的数据了。 UDID(Unique Device Identifier)是一串由40位16进制数组成的字符串,用以标识唯一的设备,现在想通过代码获取是不可能的了,如果你想看看你设备的UDID,可以通过iTunes来查看。苹果从iOS5开始就移除了通过代码访问UDID的权限,所以码农啊,想知道用户设备的UDID,是不行的喽。 那么有没有另外的办法来获取用户设备的唯一标识符呢?答案是有的,当然这样的标识符不是苹果隐藏的UDID了,使用OpenUDID开源代码,这个代码通过一些特殊的算法,创建了每一个设备的唯一标识符,你可以拿过来用来识别设备了。
创新互联建站主营田家庵网站建设的网络公司,主营网站建设方案,手机APP定制开发,田家庵h5微信小程序定制开发搭建,田家庵网站营销推广欢迎田家庵等地区企业咨询
以下获取 uuidString 的方法,每次重启都会改变。
但是项目的要求是不变,并且删除app 只有也有有保留的需求。显然这个无法满足我们的需求。
使用KeyChain保存到系统钥匙串中,然后再去获取相应的值,就可以保证删除app新装的app也能获取到第一次安装存储的值。显然是可以满足我们的需求的。
下面使用 KeychainAccess 的第三方类库来实现。
开箱即用!
使用方法:
大功告成!
在苹果开发者账号下添加新设备UUID 后,出现用 Xcode 打的包在该新设备安装不上。
解决方法如下:
如果 Xcode 是 Automatically manage signing 自动管理证书签名的话,那么需要做如下操作:
1、到目录~/Library/MobileDevice/Provisioning Profiles/,删除所有文件
2、XCode Preferences Accounts,选择相应的Team
3、点击Download Manual Profiles
在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理。
项目2若要使用项目1的Keychain则项目2要开启Keychain Sharing 且 Keychain Groups要包含项目1。 项目1的Keychain Sharing 没有要求。
使用第三方SSKeychain。