xcode8 ios10 新特性使用总结

好多人都更新了Xcode8 那么随之而来的就是Xcode8的一些变化以及使用时的一些注意事项了,我用了一段时间,做了一些总结现在分享给大家。

xcode8 使用总结:

1、新建工程:在Xcode 创建项目的时候新增了iMessage 信息应用程序 和 sticker 表情包应用程序,并且将开发者账号的管理提到 创建项目参数配置中

1.内置表情包(Sticker Packs)

可以通过在Xcode中新建Sticker Pack Application来创建。这种方式可以简单地通过添加图片来在iMessage中添加表情包。添加的贴纸需要满足一下条件图片类型必须是 png、apng、gif或者jpeg

文件大小必须 小于500K

具体如何实现可以查看这篇文章:http://codecloud.net/13065.html

2.iMessage应用(没有具体研究过怎么用)

iMessage app使用完整的框架和Message app进行交互。使用iMessage app能够在消息应用内呈现一个自定义的用户交互界面。 使用MSMessagesAppViewController创建一个自定义或者动态的表情包浏览器。使用 MSStickerBrowserViewController添加文本、表情、或者媒体文件到消息应用的文本输入框。使用 MSConversation创建带有特定的应用数据交互的消息。使用 MSMessage更新可以相互影响的消息(例如,创建游戏或者可以合作的应用)。

2、在Xcode general 配置中有比较大的变化

3、Xcode8重新设计了Interface Builder 的画布,不再有以前的大方框了,取而代之的是选择不同设备,你可以在不同设备之间快速切换并看到一个完全实时的应用程序界面预览

在底部设备栏(暂且这么叫)右边你会看到一个 Vary for Traits按钮 点开之后你可以选择宽度和高度,当选中Width的时候左侧会列出所有需要适配的屏幕类型,包括分屏,竖屏和横屏.这样你就会很容易的知道我的界面需要适配的所有宽度类型.

同理:当选中Height的时候左侧会列出所有需要适配的屏幕类型,包括分屏,竖屏和横屏.这样你就会很容易的知道我的界面需要适配的所有高度类型.

4、关于Interface Builder版本问题

当用Xcode8打开之前创建的项目的xib的时候回跳出让你选择设备的界面,如果你选择了那么再用Xcode8以下的版本就打不开了,也就是说Xcode7、Xcode6等等都无法使用。情况如下

Xcode7、Xcode6等等再次打开xib就会报错

怎么解决呢,一种方法就是我们打开Xcode8的时候选择cancel

如果不小心已经选择了choose怎么办呢,别急,我们用另外一种方法,另一种方法可以选中xib右击选择Open As ->Source Code 然后在xml文件中你会看到这句话

只需要将这句话删除就可以了

5、控制台输出Log问题

Xcode8会在控制台打印一些额外信息(猜想是个BUG),如果这样的话就太影响开发调试了,不过我们也可以关闭,但是关闭的话真机测试又没有信息打印了,而且每一个项目我们都得这样配置,所以这是一个很蛋疼的问题。但是没办法,目前还没有找到好的解决办法,有的人可能出现配置了但是还是输出这些乱七八糟的信息,这样我们就得多试几遍了,确实没有办法,但是现在升级到xcode8.1版本的话苹果就已经解决了这个bug了.

如何配置呢:

1、快捷键 cmd + shift +, 或者使用下面的方法

2、选择完或者执行快捷键会出现下面的窗口,做如下配置OS_ACTIVITY_MODE -> Disable

6、添加注释

虽然Xcode8禁用了所有的插件,如果想继续使用插件请参考这篇文章:http://www.jianshu.com/p/86dcccaec4c3/comments/4283432 ,不过Xcode8也内部集成了一些插件使用,比如添加说明(注释): Option + CMD + /,不过会遇到不启动的情况

解决方案:

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

然后必须重启电脑就大功告成了

如果这里是灰色的 说明你的添加注释功能被禁用了

7、ios10 隐私权限设置

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

• 麦克风权限: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

• 定位权限:Privacy - Location When In Use Usage Description

• 定位权限: Privacy - Location Always Usage Description

• 位置权限:Privacy - Location Usage Description

• 媒体库权限:Privacy - Media Library Usage Description

• 健康分享权限:Privacy - Health Share Usage Description

• 健康更新权限:Privacy - Health Update Usage Description

• 运动使用权限:Privacy - Motion Usage Description

• 音乐权限:Privacy - Music Usage Description

• 提醒使用权限:Privacy - Reminders Usage Description

• Siri使用权限:Privacy - Siri Usage Description

• 电视供应商使用权限:Privacy - TV Provider Usage Description

• 视频用户账号使用权限:Privacy - Video Subscriber Account Usage Description

如果配置这些不起作用的话就需要打开后台权限,拿定位来说的话如下图

8、推送问题

如果大家要使用推送请将这个打开,不然会出现问题的

9、iOS9 中默认非HTTPS的协议是被禁止的,解决方案是我们可以在info.plist文件中添加AppTransportSecuritySettings字典,将NSAllowsArbitraryLoads设置为YES来禁用ATS。

iOS10 从2017年1月1日起苹果提出所有新提交的App默认不允许使用NSAllowsArbitraryLoads来绕过ATS的限制,也就是说强制我们用HTTPS,如果不这样的话提交App可能会被拒绝。

解决方案:我们可以通过NSExceptionDomains设置白名单的方式来针对特定的域名开放HTTP内容来通过审核。可以简单理解成,把不支持https协议的接口设置成http的接口。

操作:

1)在项目info.plist中添加一个Key:App Transport Security Settings,类型为

Dictionary;

2)在其内添加一个Key: Exception Domains,类型为Dictionary;

3)在Exception Domains内添加要支持的域,其中域作为Key,类型为Dictionary;

4)每个域下面需要设置3个属性:类型为Boolean;

NSIncludesSubdomains  YES

NSExceptionRequiresForwardSecrecy  NO

NSExceptionAllowsInsecureHTTPLoads  YES

注意:每个需添加的域都需要设置此三个属性。如果请求的网络图片是HTTP,也是需要设置的图片的域。

10、系统判断方法失效

在你的项目中,当需要判断系统版本的话,不要使用下面的方法:

#define isiOS10 ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=10)

它会永远返回NO,substringToIndex:1

在iOS 10 会被检测成 iOS 1了,应该使用下面的这些方法:Objective-C 中这样写:

#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)

#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

Swift中这样写:

if NSProcessInfo().isOperatingSystemAtLeastVersion(NSOperatingSystemVersion(majorVersion: 10, minorVersion: 0, patchVersion: 0)) { // 代码块}

11、苹果针对内存也做了优化,Xcode8新增Runtime调试,界面可以展示运行时的问题,改善的界面调试对于调试不清晰或者不满意的布局变的更简单,我们可以利用debug模式下的Runtime来查看内存,具体如何实现我也没有做过实验,可以参考一下这篇文章http://url.cn/40SBiZq

12、Swift3.0 and Swift2.3 随意切换

Xcode8支持3.0语法和2.3语法随意切换,默认创建出来是3.0语法, 如果想用2.3语法是可以切换的

语法转换

当然Swift只能向上兼容,不能向下兼容,如果你的语法是2.3的可以转换为3.0的,但是转换不一定成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容