您的位置:首页 > 移动开发 > IOS开发

IOS 10 适配系列 _3_ Xcode 8 GM seed

2016-09-11 09:55 295 查看

准备工作

更新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;
}];

使用语音识别,也需要加上权限许可描述,上面有提到过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息