Xcode 8 适配(踩坑)

在每一次升级 后,难免会有一些莫名的 Bug 产生,在此记录着,以便快速解决。


  • 1、快捷键不灵
  • 2、模拟器的选项不见了
  • 3、打印时出现一大堆信息
  • 4、插件失效
  • 5、在查看全屏图片时,隐藏状态栏的功能坏掉了。(iOS 10)
  • 6、推送不好使
  • 7、私有权限设置
  • 8、UILabel 长度问题
  • 9、项目中某个类出现大量的“use of undeclared identifier”

1、快捷键不灵

像我最常用的 注释 "Command" + "/" 居然不管用啦

It means you could just use the shortcut (⌥ Option + ⌘ Command + /) to add a documentation comment to your code if you are using Xcode 8 or above!

启动终端输入下面这句话,然后重启电脑就好啦

~ sudo /usr/libexec/xpccachectl

但还好,大部分的快捷都还是OK的。

2、模拟器的选项不见了
模拟器的选项不见了

很奇怪的感觉,公司的电脑更新没有出现这个问题,回来后个人电脑出现啦。
一个最直接的方法,手动添加。直接到 Windows --> Devices, 看到左下角添加模拟器。

增加需要的模拟器

上述这个方法是应急用的。

3、打印时出现一大堆信息

一堆很奇怪的信息,暂时也不知什么情况。

2016-09-14 23:37:22.522261 TestXcode8[6606:870004] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-14 23:37:22.525813 TestXcode8[6606:870004] subsystem: com.apple.UIKit, category: HIDEventIncoming, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-14 23:37:22.538153 TestXcode8[6606:869999] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0
2016-09-14 23:37:22.559243 TestXcode8[6606:869878] subsystem: com.apple.UIKit, category: StatusBar, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
关闭无用的信息

在 Edit Scheme 中 ,如上图设置 OS_ACTIVITY_MODE : disable, 然后就 OK 啦。参考 stackoverflow hide-xcode-8-logs

4、插件失效
Xcode 8 uses library validation. It won't load in-process plugins anymore.

这个是由于苹果已经重置插件这块,但有部分优秀的插件已经内置在Xcode了,整体来说,对我影响并不是那么大。

自己还没有尝试过, 因为据说不是持久的解决方案,有需要和兴趣再尝试吧! 另外如果使用 MakeXcodeGr8Again 注意参考下这篇文章:如何让 Xcode8 继续支持 Plugin

  • 内置插件使用
    例如 注释键这个插件,直接通过内置的使用就 OK 了


    VVDocument

    然后将该操作设置成自己熟悉的快捷键,然后这个以往的插件就成为了我们常规的快捷键啦


    设置成自己熟悉的快捷键

另外在Swift 中支持自动弹出图片和颜色的那个插件,而在OC中是不支持的!这个对OC来说,很不爽。

5、隐藏状态栏的功能坏掉了

升级到 iOS 10.0后,在查看全屏图片的时候,需要在 Present 之前给要 present 的 view controller 设置 modalPresentationCapturesStatusBarAppearance = true。然后就好啦

TestViewController *testVC = [[TestViewController alloc] init];
testVC.modalPresentationCapturesStatusBarAppearance = true;
[self presentViewController:testVC animated:YES completion:nil];
6、推送不好使
通知开关

Xcode 8 后,推送可能出现莫名的bug , 但其中有一点可以看看这个开关是否打开,一定要记得打开!
另外通知从手机上看确实在 iOS 10 改变了好多,更好用啦;而我还是先收集下相关资源:

7、私有权限设置

由于iOS10对 Security and Privacy Enhancements安全和保密性增强,在申请很多私有权限时,都需要添加描述,不添加会crash。 所以我们需要在info plist 中添加描述信息。

NSBluetoothPeripheralUsageDescription //访问蓝牙
NSCalendarsUsageDescription //访问日历
NSCameraUsageDescription //相机
NSContactsUsageDescription //通讯录
NSHealthShareUsageDescription // 访问健康分享
NSHealthUpdateUsageDescription // 访问健康更新
NSHomeKitUsageDescription //HomeKit
NSLocationAlwaysUsageDescription // 始终访问位置

NSLocationWhenInUseUsageDescription //在使用期间访问位置
NSMicrophoneUsageDescription // 麦克风
NSMotionUsageDescription // 访问运动与健身
NSPhotoLibraryUsageDescription // 相册
NSRemindersUsageDescription // 访问提醒事项
NSSiriUsageDescription // Siri
NSSpeechRecognitionUsageDescription //语音识别
NSVideoSubscriberAccountUsageDescription // 视频这块的认证
NSVoIPUsageDescription // VoIP通话

例如我们常用的相机和相册:

<key>NSCameraUsageDescription</key> 
<string>允许使用相机</string> 
// <string> Allows the use of the camera</string> 
<key>NSPhotoLibraryUsageDescription</key> 
<string>允许访问相册</string>
// <string>Allow access to the photo album</string> 

填的string会在弹出用户允许时展示在描述里,如果描述空着提交AppStore时会被拒绝。

8、UILabel 长度问题

在动态计算一段文字的高度时,计算出来的高度在iOS10设备上不足以容纳这段文字,所以导致 UILabel 上显示不全的的问题

由于iOS10更换了系统字体,所以会导致文字的大小跟iOS9及之前的系统有点区别,如果继续用Xcode 7 编译,建议长度基础上加上 4-5的距离,当然直接用 Xcode 8 编译后适配更好!

另外英文是木有问题,此处只针对于 中文 才会有显示不全的情况。

9、项目中某个类出现大量的“use of undeclared identifier”

在跑项目的时候,突然发现某个类出现大量的“use of undeclared identifier,但是又可以通过 command 找到其所属,也可以运行,一下子不知所以然。但是那红色警告太烦了。

但仔细观察。发现通通都有一个规律,就是那些 undeclared identifier 都是通过 pch 文件 import 的,所以当我将所有的 import 全都放入到该类时,这些红色的警告才消失。

此处话说是 Xcode 8 对 pch文件是不支持的,当然其实 Xcode 7 那时就不支持啦,只是很多时候我名字可以通过其他方法建立 pch 文件。所以此时建议是后期尽量不用 pch 文件的。当然,此处还如发现其他好的解决方式欢迎告知。

陆续添加中...

PS:方便的东东
  • 1、Provisioning Profile 文件选取,已经从Buiid Settings移动到了General中,这样更方便我们选取啦


    General 中Provisioning Profile
  • 2、 日志处增加了 过滤搜索条件,这样让我们也可以像安卓同学那样快速选取。另外删除操作后暂时是没有真正的删除日志的,还可以通过点击 filter and 空白日志页重新显示出来 (Xcode 10.3 后这个删除了就真的删除了,重新显示不出来啦)。
    过滤条件
  • 3、调试好东东
    Memory Graph

    紫色箭头代表有问题

    此处也可以看到

    暂时用这个还不是很熟悉,但是我们第一眼至少能发现它一些明显的问题,详细可以看看Xcode8调试黑科技:Memory Graph实战解决闭包引用循环问题
备注参考:

Xcode 8 中的新内容
Xcode8调试黑科技:Memory Graph实战解决闭包引用循环问题

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

推荐阅读更多精彩内容