iOS9应用适配,技Get

iOS9刚发布不久时,app在新的系统中会出现闪退的情况,app就iOS9的适配做了一些修改,以致用户体验性更好。特此做一下的总结和分享。主要从下面几点做的适配。

  • 1.iOS9网络适配ATS-HTTP VS HTTPS
  • 2.Bitcode
  • 3.iOS9 URL Scheme 适配_引入白名单概念
  • 4.字体间隙变大导致 UI 显示异常
  • 5.地理位置
  • 6.状态栏
  • 7.联系人框架--Contacts VS AddressBook

 

iOS9网络适配-HTTP VS HTTPS

  • ATS——App Transport Security
  • 为了强制增强数据访问安全, iOS9 默认会把 所有的http请求 所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求,都改为 HTTPS 请求为了强制增强数据访问安全, iOS9 默认会把 所有的http请求 所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求,都改为 HTTPS 请求
  • 解决方案1:立即让公司的服务端升级使用TLS 1.2,以解析相关数据
  • 解决方案2:虽Apple不建议,但可通过在 Info.plist 中声明,倒退回不安全的网络请求依然能让App访问指定http,甚至任意的http

         

 

 

Bitcode

  • 未来Watch应用须包含Bitcode,iOS不强制,但Xcode7默认会开启Bitcode。
  • bitcode是被编译程序的一种中间形式的代码。包含bitcode配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上。当提交程序到App store上时,Xcode会将程序编译为一个中间表现形式(bitcode)。然后App store会再将这个bitcode编译为可执行的64位或32位程序。

           

iOS9 URL Scheme 适配_引入白名单概念

            

 

字体间隙变大导致 UI 显示异常

  • iOS8中,字体是Helvetica,中文的字体有点类似于“华文细黑”。只是苹果手机自带渲染,所以看上去可能比普通的华文细黑要美观。iOS9中,中文系统字体变为了专为中国设计的“苹方” 有点类似于一种word字体“幼圆”。字体有轻微的加粗效果,并且最关键的是字体间隙变大了!
  • 解决方案:使用sizetofit 或者ios向上取整 ceilf() 或者提前计算
  • CGSize size = [title sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14.0f]}];
  • CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height));

地理位置

  • 适配iOS9,同一App中的多个location manager:一些只能在前台定位,另一些可在后台定位,并可随时开启或者关闭特定location manager的后台定位。
  • _locationManager = [[CLLocationManager alloc] init];
  • _locationManager.allowsBackgroundLocationUpdates = YES;

状态栏

  • Xcode 升级后,旧的状态栏的样式设置方式会引起警告设置, app 的状态栏样式的时候,使用了旧的方式,在 info.plist 里面的 View controller-based status bar appearance 默认会为 YES,即使不设置也是 YES,但一般 iOS6 的时候为了设置状态栏样式,需要将其设为NO,iOS7,8也兼容,但是到了iOS9 就会报警告。
  • [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
  • 解决方案:对于原有的OldApi进行替换,在rootViewController以及自定义的基类Navi gationController中的类中重写如下方法即可。对于特殊界面做单独处理;
  • -(UIStatusBarStyle)preferredStatusBarStyle 
  • {return UIStatusBarStyleLightContent;}

联系人框架--Contacts VS AddressBook

  iOS 9 中,苹果介绍了新的 Contacts framework。允许用户使用 Objective-C 的 API 和设备的通讯录进行交互,同样适用于 Swift 语言。比起之前通过 AddressBook framework 来读取联系人信息来说,这是一个巨大的进步。

优点:获取数据更加快捷,效率性能更高,且方便调用; 

 

posted on 2015-12-23 18:01  有近暗  阅读(297)  评论(0编辑  收藏  举报