就在前不久,苹果刚刚对外正式发布了新的操作系统IOS10。悲剧的是就在发布新系统的当天公司就急着要发布一个新版本,问题来了。。。谁知道APP在IOS10上会遇到什么鬼情况!最怕的就是闪退。。。于是在上线前做了很多关于IOS10的适配工作,其中也踩了很多坑。所以在这里记录总结一下。

1、自动管理证书

首先要说的就是Xcode8。打开Xcode8最明显的就是Targets-->General下的自动管理证书模块。以前对于新手来说无论是开发还是打包都必须要被苹果的开发签名系统虐上几遍才能真正明白它的原理和规程。现在貌似直接勾上“Automatically manage signing”,Xcode8一切都帮我们做好了。不得不说确实很方便!

不过认真想想,这个“Automatically manage signing”按钮无非就是自动帮我们在开发者中心创建appid、cetificaiton、profire provision等等证书文件并且自动关联上。但是如果我们证书管理不规范,很有可能出现revoke证书的情况。这是一直以来很头疼的事情。所以我还是推崇开发者自己手动创建和管理证书。呵呵,这个自动管理证书的按钮我们选择不勾上。

2、杂乱无章的日志输出

Xcode8启动后一连串杂乱无章的日志输出,第一反应就是这是什么鬼!

在网上查了一下,原来这个日志的输出是可以关闭的。关闭路径:Edit Scheme-->Run-->Arguments-->Enviroment Variables ,添加一个配置选项就好了 “OS_ACTIVITY_MODE = Disable”。

3、推送增加 entitlements 文件签名

Xcode8增加了一项很重要的功能:为推送增加了entitlements 文件签名。所以,如果你的应用是支持推送的,那一定要记得打开这个entitlements 文件签名的开关!否则APP在启动注册推送服务的时候就报签名错误了,Push消息也就不可能接收的到。

下图的开关记得打开!

另外,苹果对推送的框架和API也做了重大的调整,需要开发者对IOS10+做相应的适配,后面会详细介绍。

4、系统权限设置

IOS10对系统权限的使用做了更加严格的控制。

APP想要使用系统的某个权限,必须要在项目设置info.plist文件中设置相应的权限说明,否则在IOS10上会出现崩溃。

事实上,如果你的应用使用了系统某个权限,但是没有设置相应的权限说明,那么你的应用在上传到itunes connect后会马上被changed to invalid binary。

因为这个坑我们第一天就踩了:用Xcode 8打包上传App,本地验证和ipa上传都正常,但是上传成功后,包马上被changed to invalid binary,itunes connect后台的构建版本也一直出不来。一看反馈邮件,原因就是使用了某个系统权限但是没有添加相应权限的说明!

相应的系统权限说明如下:

麦克风权限---> Privacy - Microphone Usage Description :是否允许此App使用你的麦克风?

相机权限---> Privacy - Camera Usage Description :是否允许此App使用你的相机?

相册权限---> Privacy - Photo Library Usage Description :是否允许此App访问你的媒体资料库?

通讯录权限---> Privacy - Contacts Usage Description :是否允许此App访问你的通讯录?

蓝牙权限---> Privacy - Bluetooth Peripheral Usage Description :是否许允此App使用蓝牙?

语音转文字权限---> Privacy - Speech Recognition Usage Description :是否允许此App使用语音识别?

日历权限---> Privacy - Calendars Usage Description :是否允许此App使用日历?

定位权限---> Privacy - Location When In Use Usage Description :我们需要通过您的地理位置信息获取您周边的相关数据

定位权限---> Privacy - Location Always Usage Description :我们需要通过您的地理位置信息获取

5、字体变大,原来的一些控件出现字体显示不全

IOS10下的字体比原来的字体更大。

以前刚刚好显示的下的文字在IOS10上竟然显示不全了,因为IOS10的中文字体比原先的字体要大,目前的解决方法就是把原来定宽且刚好显示完全的控件重新调整一遍:要么把宽度加宽要么内容自适应大小。

6、IOS10跳转到系统设置的相应方法已经禁止

在iOS10以前,我们可以通过以下方法跳转到设置相应的页面去:

//跳转到设置的 WIFI 页面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

另外:

IOS6和IOS7需要设置URL Schemes:在URL Types中添加一个新项(prefs)。

IOS8和IOS9则不需要设置这个。

IOS10已经禁止,所以IOS10的系统可以去除这部分业务逻辑了。

关于APP跳转到系统Setting,可以参考本人的这篇文章。App如何跳转到系统Settings

7、Xcode代码注释不能用

这个是因为苹果解决xcode ghost,把插件屏蔽了。

解决方法

打开终端,命令运行: sudo /usr/libexec/xpccachectl

然后必须重启电脑后生效

总结适配IOS10需要注意的问题相关推荐

  1. iOS 开发 : 14个技巧助你适配 iOS10

    iOS 开发 : 14个技巧助你适配 iOS10 1.Notification(通知) 自从 Notification 被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 1 ...

  2. iOS开发 适配iOS10

    2016年9月7日,苹果发布iOS 10.2016年9月14日,全新的操作系统iOS 10将正式上线. 作为开发者,如何适配iOS10呢? 1.Notification(通知) 自从Notificat ...

  3. 【腾讯Bugly干货分享】QQ电话适配iOS10 Callkit框架

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58009392302e4725036142fc Dev Club 是一个交流移动 ...

  4. 推送通知/传感器/UIDynamic仿真(推送通知已适配iOS10)

    推送通知/传感器/UIDynamic 一.推送通知 1.推送通知简介 什么是推送通知 此处的推送通知与NSNotification没有任何关系 可以理解为,向用户推送一条信息来通知用户某件事情 作用: ...

  5. iOS开发 适配iOS10以及Xcode8-b

    现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本, ...

  6. 适配iOS10以及Xcode8

    现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本, ...

  7. iOS开发 适配iOS10以及Xcode8

    现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本, ...

  8. 适配iOS10.2 https双向认证

    大体流程: 1.后台申请好证书,然后发给你. 可以从腾讯云或者阿里云上申请证书.腾讯云审核的稍微快一些. 2.你拿到证书以后,放到钥匙串儿里,然后再右键把他导出来.就是cer格式的证书了. 3.把证书 ...

  9. 关于iOS10的适配

    每一次的iOS升级, 都伴随着各种坑的出现, 今年iOS10也不例外 本着一定要紧随最新科技的开发态度, 最近将手机升级到了iOS10, xcode升级到了8.0 但是紧随而来的就是各种崩溃, 各种坑 ...

最新文章

  1. P4735 最大异或和(可持久化trie树、求最大区间异或和)
  2. 通过城市联动实时将地址显示到text中
  3. miui游戏驱动程序偏好设置_米粉必看:小米官方教你如何关闭 MIUI 广告 - 小米,MIUI...
  4. java 声明静态类,为什么你不能在Java中将类声明为静态?
  5. 用Openswan组建Linux IPSec ---第二部分
  6. 【Intellij】Intellij Idea 2017创建web项目及tomcat部署实战
  7. 2021-02-13
  8. Git储藏和引用日志
  9. 2018年华为网络技术大赛总结
  10. linux - android安卓 - stagefright
  11. ssm+layui 超市管理系统 大学期末作业详解(1)
  12. ajax与spry的关系,用Spry框架来简化AJAX
  13. 在虚拟机上安装mysql
  14. win10系统警告unknown hard error开不了机怎么办
  15. 交通模拟仿真平台指南(含数据说明)
  16. 《三体》刘慈欣:意识上传离现实还存在很大技术障碍
  17. Qt扫盲- QTcpSocket 理论总结
  18. 制作一个3D旋转相册
  19. 央视调查:“芯荒”正帮助国产汽车芯片实现零的突破
  20. AMD APU A10-5800K, Debian Wheezy, 系统安装ATI闭源驱动

热门文章

  1. 【计算机毕业设计】论坛管理系统
  2. ocaml快餐教程(3) - 基本结构
  3. oracle 事务阻塞,一个Oracle会话严重阻塞的案例
  4. 代码分享:宠物小精灵开场特效
  5. ThinkPHP5篮球培训报名系统
  6. 4.2统计一个整数的位数
  7. 男生女生关系的33个绝妙比喻
  8. 【SV书的章节练习题】Chap.3 Combinational Logic Using SystemVerilog Gate Models
  9. Android之TextView显示特殊字符
  10. 快来看看这几个iPhone手机的实用功能