iOS7 Release Note提到的一些变更

来源:互联网 发布:游戏 独立开发者 知乎 编辑:程序博客网 时间:2024/05/16 06:50

iOS7 Release Note提到的一些变更


看了Beta版的iOS SDK Release Notes for iOS7.0之后,整理了些对日常工作有点关系的部分内容。


1.网络

iOS7开始,如果Wifi连接不通的时候,会自动切换成蜂窝网络进行联网!

iOS7之前,如果手机有连上一个Wifi网络,手机是绝对不可能使用蜂窝网络进行联网的。但以后就会发生改变,所以对于镇内用户,请记得关注你的流量,有可能你以为你在用Wifi,实际上你的流量已经不知不觉飚上去了。

对于开发者而言,以往在下载大流量资源之前,使用SCNetworkReachability等方式判断当前网络制式的方式也不再奏效,因为下载的过程中,网络模式是有可能发生切换的!

解决方案是,iOS7之后,可以使用如下方法来禁止使用蜂窝网络。

-[NSURLRequest setAllowsCellularAccess:false]


2.剪贴板UIPasteboard

UIPasteboard最初被设计就是用于开发者的一组应用间的数据共享,当实际上iOS7之前的UIPasteboard只要应用知道其名字,即可访问其中的内容,而OpenUDID的实现方式也依赖于此,让开发者能使用一组UUID来标记一个设备。

iOS7之后,+[UIPasteboard pasteboardWithName:create:]+[UIPasteboard pasteboardWithUniqueName]这两个方法产生的UIPasteboard仅供同组应用之间共享数据,也就是Info.plistCFBundleIdentifier字段的前两段标识(例如com.yourcompany.xxcom.yourcompany)相同的应用才能相互共享数据。不同组应用之间相同名字的UIPasteboard是不同的,而不是以前的同一个。

所以当前版本的OpenUDID随着iOS7的出现也将慢慢失去其效用。

3.设备唯一识别符相关

自从苹果从iOS5开始废弃UDID的使用,到20135月禁止UDID的使用之后,iOS7中在对外公开的API中正式移除了-[UIDevice uniqueIdentifier]的方法!

同样,从iOS7开始,通过sysctlioctl两个方法取得网卡地址将是固定的02:00:00:00:00:00,而不是真实的网卡地址!

此外,旧有的已上架的应用程序如果调用-[UIDevice uniqueIdentifier]方法,将得到如下值:以FFFFFFFF开头,后面跟上-[UIDevice identifierForVender]的返回值。



转自http://kensou.blog.51cto.com/3495587/1250266