關於Xcode10的那些事

前言

這裏主要介紹一下Xcode10 版本主要更新的內容。
隨着iOS12的發佈,Xcode10已經能夠從Mac App Store下載。
Xcode10包含了iOS十二、watchOS 五、macOS10.14以及tvOS 12的SDK。另外,開發者能夠從Xcode中看到當前Deployment Target最低爲iOS8,因此後續開發過程當中我的以爲能夠忽略iOS8以前的一些特性。
要想安裝Xcode10,mac系統版本必須是macOS 10.13.6或者更高。這裏對主要的一些變動作一些介紹(並不是全部)。c++

新特性

  • NSData類型的數據能夠直接導出來。例如一張圖片轉成data以後,在快速瀏覽框能夠直接將data導出,最終保存成包含二進制的文件。git

    Export

  • 新建的schemes默認被全部用戶共享。若是想建一個私人的scheme,在Manage Schemes中不選擇Shared便可。github

    scheme-manager

  • 快捷鍵「Ctrl+0」能夠打開彈出scheme選擇,「Ctrl+Shift+0」能夠彈出運行設備選擇。當彈框出來的時候,能夠直接使用鍵盤上的上下左右選擇,而後點擊回車便可選中。swift

    快捷鍵

  • Library控件庫的位置從原來的右下角移動到了頂部,默認選中一個控件往StoryBoard拖得時候Library控件庫會關閉,按住Option鍵能夠在拖動控件的時候保持Library庫不消失:xcode

    Option-Library

  • Library的位置從底部移動到了Inspector的上方window中。如今變得更加靈活,想Spotlight Search那樣能夠隨意拖動,當元素拖動的時候,該Library框就會消失。可是若是按住Option鍵拖動,該彈框就不會消失。app

現有問題

若是打開存儲在iCloud Drive中保存的Xcode工程或者workspaces,或者是爲存儲在iCloud Drive中的工程經過git(其餘version管理工具)切換分支,可能會致使Xcode終止運行。編輯器

已解決的問題

  • 新建的文件.h默認包含NS_ASSUME_NONNULL_BEGIN 和NS_ASSUME_NONNULL_END。這兩個宏之間的代碼,全部指針對象都會假定爲nonull,因此咱們在開發的時候只須要指定那些nullable的對象便可。工具

    默認非空

棄用的東西

  • C++庫libstdc++在Xcode8的時候已經棄用,在Xcode10以及以後將再也不支持(iOS target)。C++工程必須遷移到libc++。除了修改c++標準庫的build setting,開發者還應該查看一下硬編碼的linker flags和target的依賴,刪除libstdc++(包括-lstdc++、-lstdc++6.0.九、libstdc++6.0.9.tbd和libstdc++6.0.9.dylib)的引用。項目中依賴的針對libstdc++構建的靜態歸檔文件也須要針對libc++從新構建。(也就是說咱們須要檢查一下Target的Build Phases,裏面的Link Binary With Libraries若是包含上述提到的庫,須要刪除,而且移除DrivedData)。
  • 移除了對Subversion的支持。
  • Xcode10是最後一個支持Swift3的版本。經過打開Project>Edit> Convert>To Current Swift Syntax..來將Swift3的代碼轉成swift4.2。
  • macOS 10.14SDK再也不支持32位程序。若是開發者須要編譯i386,使用Xcode9.4或者更早版本的Xcode。

設備

使用Xcode10運行老版本Xcode構建的WatchKit app,將會報錯:「TheWatchKit app has an invalid stub executable」。解決辦法:Clean build文件夾,而後重新運行。佈局

文檔查看

  • 按住option查看Quick Help的彈框展現內容變成了單列布局格式,而且選中查看的方法在彈框中展現的背景顏色和當前Xcode主題顏色一致:(當前爲黑色主題,彈框的註釋內容也是黑色)ui

    Quick Help

模擬器

  • 原來在模擬器的Edit菜單有專門的Get PasteBoard && Send PasteBoard來作複製粘貼同步,如今在該菜單下有一個專門的item來處理複製粘貼操做:AutoMatically Sync PasteBoard。也就是說只要使用這個功能便可實現粘貼複製在mac和模擬器數據的同步。

    模擬器數據自動同步

編輯器

  • 支持多cursor編輯。快捷鍵:shift+control+點擊(若是想取消某個cursor,則再次點擊便可)

    multi-cursor

  • 不連續選中操做支持:control+shift+點擊

    不連續選中操做

相關文章
相關標籤/搜索