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閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容