兼容iOS 10 ,升级xcode8出的一堆问题的解决方案,以及一些适配.

转载
1、推送
xcode 升级到8之后很多人的推送接收不到了.获取不到token了 一朋友搞了一小时没找到原因. 只因看下图吧....我发觉xcode 我不打开他也能收到通知. 但是到了8(必须打开了才能收到推送) . 貌似不行了 大家对号入座吧.


兼容iOS 10 ,升级xcode8出的一堆问题的解决方案,以及一些适配._第1张图片

下面普及下ios10跟之前的推送的区别
iOS 9 以前的通知

1.在调用方法时,有些方法让人很难区分,容易写错方法,这让开发者有时候很苦恼。
2.应用在运行时和非运行时捕获通知的路径还不一致。
3.应用在前台时,是无法直接显示远程通知,还需要进一步处理。
4.已经发出的通知是不能更新的,内容发出时是不能改变的,并且只有简单文本展示方式,扩展性根本不是很好。

iOS 10 开始的通知
1.所有相关通知被统一到了UserNotifications.framework框架中。
2.增加了撤销、更新、中途还可以修改通知的内容。
3.通知不在是简单的文本了,可以加入视频、图片,自定义通知的展示等等。
4.iOS 10相对之前的通知来说更加好用易于管理,并且进行了大规模优化,对于开发者来说是一件好事。
5.iOS 10开始对于权限问题进行了优化,申请权限就比较简单了(本地与远程通知集成在一个方法中)。

2、字体适配的问题
ios 9 之前的lab 字体可以显示全,但是到了ios10 发觉字体显示不全了.得适配啊.app 会跟随手机系统字体大小而改变了.
简单粗暴地方法就是不让他跟着手机系统的字体改变而改变.
label.adjustsFontForContentSizeCategory = YES;

3、xcode 8运行打印一堆没用的东西Xcode 8的问题,解决办法是设置OS_ACTIVITY_MODE : disable如下图:
[图片上传中。。。(2)]

4、xcode8的注释快捷键是什么, command+/ 不行了
解决办法:
因为苹果解决xcode ghost。把插件屏蔽了。解决方法命令运行: sudo /usr/libexec/xpccachectl 然后必须重启电脑后生效
5 、颜色问题, iOS 10 苹果官方建议我们使用sRGB,因为它性能更好,色彩更丰富。
UIColor类中新增了两个Api如下:

  • (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0); - (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);

6 判断版本问题
建议用 [[UIDevice currentDevice] systemVersion]
swift用
if #available(iOS 10.0, *) {
// iOS 10.0啊
print("iOS 10.0");
} else
{
}
;

7、https的问题
iOS 9中默认非HTTS的网络是被禁止的,当然我们也可以把NSAllowsArbitraryLoads设置为YES禁用ATS。不过iOS 10从2017年1月1日起苹果不允许我们通过这个方法跳过ATS,也就是说强制我们用HTTPS,如果不这样的话提交App可能会被拒绝。但是我们可以通过NSExceptionDomains来针对特定的域名开放HTTP可以容易通过审核。

8、隐私权限
iOS 10 开始对隐私权限更加严格,如果你不设置就会直接崩溃,现在很多遇到崩溃问题了,一般解决办法都是在info.plist文件添加对应的Key-Value就可以了。


兼容iOS 10 ,升级xcode8出的一堆问题的解决方案,以及一些适配._第2张图片


NSPhotoLibraryUsageDescription
App需要您的同意,才能访问相册

NSCameraUsageDescription
App需要您的同意,才能访问相机

NSMicrophoneUsageDescription
App需要您的同意,才能访问麦克风
NSLocationUsageDescription
App需要您的同意,才能访问位置

NSLocationWhenInUseUsageDescription
App需要您的同意,才能在使用期间访问位置

NSLocationAlwaysUsageDescription
App需要您的同意,才能始终访问位置
NSCalendarsUsageDescription
App需要您的同意,才能访问日历

NSRemindersUsageDescription
App需要您的同意,才能访问提醒事项

NSMotionUsageDescription
App需要您的同意,才能访问运动与健身

NSHealthUpdateUsageDescription
App需要您的同意,才能访问健康更新

NSHealthShareUsageDescription
App需要您的同意,才能访问健康分享

NSBluetoothPeripheralUsageDescription
App需要您的同意,才能访问蓝牙

NSAppleMusicUsageDescription
App需要您的同意,才能访问媒体资料库
或者


兼容iOS 10 ,升级xcode8出的一堆问题的解决方案,以及一些适配._第3张图片

你可能感兴趣的:(兼容iOS 10 ,升级xcode8出的一堆问题的解决方案,以及一些适配.)