XCode9新特性

題外話

隨着iOS 1011 的正式推送,新版開發工具Xcode9也相應的更新了。官網對新版XCode9對此一波牛B吹上天,就目前使用來講,仍是不少bug的,好比一個.m實現文件中若是IBOutlet太多的話,那麼修改和編碼這個.m文件簡直就是噩夢,動一下卡一分鐘,甚至直接Crash。以前版本的Xcode還在繼續使用的IBOutlet左邊小圓點是實心,表明這個IBOutlet有與IB文件有連線,點擊能夠跳轉到相應的IB文件中相應的控件處,如今打開IB文件纔會有實心圓點,不然基本都是空心圓。使用中也遇到屢次不明緣由的Crash,不過這一版的不少功能仍是至關貼心的,也很強大!等Apple更新吧。
這是一次公司內部技術分享會的內容,內容共分爲三個部分:編程

  • Xcode9新特性
  • iOS 11 適配
  • iPhone X適配
    這是第一個部分,若有須要請持續關注。
    言歸正傳。

Xcode9新特性

Compatibility-兼容性

Xcode 9.0須要運行MacOS Sierra 10.12.4或更高版本的Mac。
想使用Xcode9,先升級Mac系統吧。複製代碼

Simulator-模擬器

  1. 多個併發模擬器。同時運行多個模擬器。swift

    這個能夠說是開發者調試程序的福音啊,之後就能夠在不一樣系統,不一樣機型上同時進行對比,調試美滋滋~~~複製代碼
  2. 從地圖,照片和Safari與模擬器共享信息。
  3. 添加了關閉窗口或退出模擬器後運行模擬器的選項,以便與命令行工具的simctl命令更好地集成xcrun。
  4. 錄製模擬器的視頻。
  5. 經過選擇幫助>模擬器幫助獲取幫助。

Source Editing ( 源代碼編輯器)

  1. 更快,更多功能查找和更換。xcode

  2. 快速滾動任何大小的文件。安全

  3. 直接操縱代碼結構,如令牌和塊。bash

  4. 從新設計源代碼管理的集成。服務器

  5. 從新設計錯誤和警告消息的介紹。markdown

  6. 支持Markdown。

    舉個🌰: 下面一段代碼,在使用QuickHelp功能時,呈現MarkDown書寫的註釋網絡

    /**
         ### 這是一段註釋 ###
         #### 使用markdown格式 ####
         * 參數1 double 類型
         * 參數2 double 類型
     */
         func sum (num1:Double,num2:Double) ->Double {
             return num1 + num2
         }
    
         let count = sum(num1: 1.0, num2: 2.0)複製代碼

介紹這個功能,主要是以爲若是團隊規範代碼格式的話,書寫着能夠在寫註釋的時候更有幫助,讓使用者能獲得查看系統級別API的體驗。併發

Debugging

  1. iOS和tvOS設備的網絡調試。(須要手機與電腦在統一網絡上)app

    經過WiFi或有線網絡調試iOS和tvOS設備。
      經過Bonjour鏈接或輸入IP地址。
      第一次須要插入iOS設備才能啓用網絡調試。複製代碼
  2. 主線程檢查器。

    檢測未在主線程上進行的AppKit,UIKit和WebKit方法調用。
     在調試期間自動啓用,而且能夠在方案編輯器的「診斷」選項卡中禁用。
     主線程檢查器與Swift和C語言一塊兒使用。
     經過深度過濾來加強Breakpoint導航器。
     添加了修改斷點的可視指示符。
     擴展視圖調試器以顯示視圖控制器,並使用SceneKit和SpriteKit視圖。
     加強iOS電能表。複製代碼

重構

  1. 跨Swift,C,Objective-C和C ++文件的全局重命名。
  2. 重構。重構內置於編輯體驗之中,並可跨Swift,Objective-C,Interface Builder和許多其餘文件類型。
  3. 基於Swift4的兼容性,能夠兼容構建Swift3
  4. 提供簡單的fix-it 功能。
  5. 自動補全缺乏的協議方法
  6. 補全缺乏的方法實現
  7. 提取變量. 方法和表達式
  8. 自動生成switch語句的case

Xcode Server

新建在Xcode服務器。

在偏好配置中,配置Xcode服務器和BOT權限設置。
增長了雙因素身份驗證支持。
更新的機器人功能

支持自動和手動配置工做流。
傳遞額外的參數xcodebuild。
在設備和模擬器上並行運行測試。
爲測試配置語言和區域。
發送「所有清除」電子郵件通知。

以前版本的Xcode也有相似的功能,可是須要單獨下載Xcode Server程序來進行項目的集成。如今已經集成到Xcode9.

Project Modernization(項目現代化)

  1. 當您打開一個項目時,Xcode對其進行評估,以查看是否應更新任何設置。此功能提供了一個簡單的方法來確保您的項目符合最新的SDK和最佳作法。

  2. 打開問題導航器以查看是否須要更新項目中的任何內容。您也能夠在項目導航器中選擇項目,而後選擇編輯器>驗證設置。

  3. 若是問題導航器列出了現代化問題,請單擊該問題以查看一個對話框,以解釋應該進行的更新,並容許您執行任何或全部更新。

  4. 單擊執行更改後,不管是否選擇進行全部更改,Xcode都不會再次顯示警告。要從新運行檢查,請在項目導航器中選擇項目,而後選擇編輯器>驗證設置。

Instruments

用於在跟蹤文檔的圖形區域中固定圖形的新拆分視圖。

添加了全部策略,並將策略選擇器移動到跟蹤文檔頂部的新工具欄。

加強型金屬調試儀。

金屬系統跟蹤VR支持查看事件,如合成器活動,姿式查詢等

Interface Builder

增長了對資產目錄使用命名顏色的支持。
    增長了對新邊距和基線視圖約束的支持。
    添加了對自動佈局安全區域指南的支持。
    增長了對全屏WatchOS應用程序的支持。複製代碼

Metal 2 Support

  1. Capture API。

在你的代碼中定義明確的捕獲邊界。
使用新MTLCaptureManager類和新MTLCaptureScope協議來編程設置,管理和觸發捕獲邊界。
使用擴展的Xcode GPU Capture UI手動啓動和中止捕獲。您還可使用Xcode來捕獲應用程序中定義的API邊界。

  1. GPU計數器。

分析有關特定GPU捕獲的詳細分析指標。在iOS和tvOS中,GPU計數器顯示爲命令編碼器的時間線;在macOS中,GPU計數器顯示爲繪製或調度調用的時間線。

檢查渲染或計算流水線階段的運行時性能,例如頂點着色器,片斷着色器,計算內核等。

比較每一個流水線階段花費的GPU時間量,以查找您的性能瓶頸。

  1. GPU備註。

在金屬着色語言代碼中查找優化機會。

在着色器編輯器中調試特定於設備的運行時問題。

遵循直接的解決方案和指示來改善您的代碼。

  1. 智能過濾。

經過鍵入到調試導航器來查找特定的調試信息。當您鍵入和突出顯示匹配的文本(例如資源,像素格式,功能名稱,對象標籤等)時,Xcode會動態顯示建議。

經過從預約義的Metal對象菜單中選擇選項來過濾搜索結果。

使用多個匹配條件的多個過濾器。

  1. VR支持。

查看VR提交和左眼/右眼提交的表面。

添加了紋理檢查,用於檢查渲染目標中各個像素的值,如顏色,alpha,深度等。

添加檢查輸出頂點屬性到緩衝區編輯器。

添加數據提示支持金屬對象,如紋理,緩衝區和採樣器。

Source Control

新的源代碼管理導航器,用於查看當前工做空間的分支,標籤和遠程存儲庫。

新的源代碼管理檢查器顯示所選導航器項目的詳細信息。

分支歷史的新編輯器,包括一個方便導航的跳轉杆。

文件差別的新的並行編輯器。

更容易和更快地訪問常見任務。

GitHub賬戶集成,輕鬆瀏覽和一鍵建立項目及相關的GitHub資源庫。

Swift (新的Xcode 9 -Swift 4)

Swift 4和Swift 3,Swift 4和Swift 3目標的一個編譯器能夠在同一個項目中編譯。

改進的遷移者體驗,僅支持將選定目標遷移到Swift 4。

更快的通用代碼和減小的代碼大小。

Testing

並行測試裝置

對XCTest添加了新的APIs

控制和捕捉截圖。
團體測試活動。
測試附件。
在特有界面清理測試狀態。
在一個UI測試中應用多個應用程序。
使用指定的語言和區域運行測試。

General(其餘功能)

  1. 更新了使用plist文件定義文本宏的方式。

    爲項目中的用戶,項目或特定用戶定義文本宏。
    
       自定義新的文件頭。
    
       有關更多信息。複製代碼
  2. 更新了索引引擎,包括在編譯文件時編制索引的能力。

  3. 設備窗口被分紅用於設備和模擬器的單獨窗格。

Asset Catalogs

  1. 命名顏色支持。

  2. 添加了普遍的應用程序圖標。

  3. 爲App圖標集添加了更大的iOS營銷。

  4. 添加了保留圖像矢量數據以選擇動態類型縮放的選項。

  5. 增長了HEIF圖像的支持。

Building and Linking

  1. 添加了一個在Swift中編寫的新構建系統的預覽。

  2. 提供更高的可靠性。

  3. 捕獲許多項目配置問題。

  4. 提升總體構建系統性能。

  5. 注意,構建系統性能不包括構建系統使用的編譯器,連接器和其餘工具。

  6. 目前可選,並將成爲將來版本的Xcode的默認值。

  7. 要選擇項目或工做區的新構建系統,請選擇「文件」>「項目設置」或「文件」>「工做區設置」,而後選擇「構建系統」類型的「新建構建系統(預覽)」。

  8. 有關與現有項目兼容性的說明,請參閱Xcode版本說明。

Capabilities

  1. iOS熱點和多路徑TCP的新配置。

  2. 新的網絡配置,包括內容過濾,代理DNS查詢以及代理TCP和UDP鏈接。

  3. 用於watchOS的新背景模式用於錄音和轉彎方向。

  4. tvOS背景提取的新模式。

Core ML( 核心ML編輯器)

  1. 爲模型生成強類型接口。

  2. 用於設備使用的模型編譯。

官網What's new in Xcode11

相關文章
相關標籤/搜索