IOS 10 适配系列 _3_ Xcode 8 GM seed

准备工作

更新Xcode 8 GM seed

在Mac上下载最新的Xcode 8 GM seed

iOS 10适配

项目转化

上面的准备工作做好了,接下来开始做iOS 10的适配工作。
用Xcode8 beta打开我们的项目,会提示转化,选择Convert



如果你的项目里有swift,会弹出swift 3版本的转化,点next



选择我们的target继续点next



点save保存更改。

清理缓存

关闭并退出Xcode,清理Xcode的缓存,这些缓存若不清理,会有很多报错.
打终端,输入指令:open ~/./Library/Developer/Xcode/DerivedData,删除DerivedData下的所有文件。

iOS 10权限适配

清理完缓存后,重新用Xcode 8 beta打开项目,首先做权限适配
iOS 10调用相机,访问通讯录,访问相册等都要在plist中加入权限访问描述,不然iOS 9上来的项目涉及到这些权限的地方就会直接crash掉,报错信息如下:

This app has crashed because it attempted to access privacy-sensitive data without a usage description.

打开info.plist添加权限许可描述键值对:



常见的权限许可设置如下:

相机权限: Privacy - Camera Usage Description  是否允许此App使用你的相机?
相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?
通讯录权限: Privacy - Contacts Usage Description  是否允许此App访问你的通讯录?
蓝牙权限:Privacy - Bluetooth Peripheral Usage Description 是否许允此App使用蓝牙?
定位权限:Privacy - Location When In Use Usage Description 是否允许此App使用定位服务?
语音转文字权限:Privacy - Speech Recognition Usage Description 是否允许此App使用语音识别?
日历权限:Privacy - Calendars Usage Description 是否允许此App使用日历?

其它iOS 10适配相关的问题

1.objc_retainedObject()要替换成(__bridge NSData *)()

2.如果你的项目使用了Masonry,那么很多缺斤少两的约束在iOS 9上还可以正常显示,但iOS 10是绝对不行的,不是crash掉就是显示不正确。应该全面检查项目的各个界面的约束是否存在问题,并一一修复。

3.如果你的项目使用了YYText,在iOS 10上存在很多显示问题,请更新到最新版。
如果你之前使用了nonHighlightTapAction或nonHighlightLongPressAction,请更换成textTapAction及textLongPressAction.

4.之前使用了YYText,在Label的算高上,iOS 10需要增大额外的高度,才能达到iOS 9的显示全。

5.iOS 10提供新的Speech.framework,Speech Recognition语音转文字

SFSpeechRecognizer *recognizer=[[SFSpeechRecognizer alloc] initWithLocale:[NSLocale currentLocale]];
    NSURL *audioSourceURL;//音频文件的url,ru
    SFSpeechURLRecognitionRequest *requset=[[SFSpeechURLRecognitionRequest alloc] initWithURL:audioSourceURL];
    [recognizer recognitionTaskWithRequest:requset resultHandler:^(SFSpeechRecognitionResult *result, NSError *error) {

        //语音转文字的结果
        NSString *resultString=result.bestTranscription.formattedString;
    }];

使用语音识别,也需要加上权限许可描述,上面有提到过。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值