Xcode9 新功能
翻譯: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcode/xcode_9/xcode_9.html#//apple_ref/doc/uid/TP40004626
Xcode是用於為Apple TV,Apple Watch,iPad,iPhone和Mac建立應用程式的完整開發人員工具集。Xcode開發環境採用tvOS SDK,watchOS SDK,iOS SDK和macOS SDK的形式捆綁Instruments分析工具,Simulator和OS框架。
Xcode 9的亮點
Xcode 9包括整體質量改進以及廣泛的新功能。
全新編輯。快速,基於結構的編輯器,可讓您智慧地突出顯示和瀏覽程式碼。包括偉大的Markdown支援。
重構。重構內建於編輯體驗之中,並可跨Swift,Objective-C,Interface Builder和許多其他檔案型別。
超快速搜尋“查詢”導航器會立即返回結果。
除錯。通過網路無線除錯ios和tvOS裝置,Metal的新偵錯程式以及Xcode中的更多功能。
源控制。所有新的原始碼管理導航器和整合的支援GitHub帳戶可以快速瀏覽資源庫並將您的儲存庫推向雲端。
Xcode伺服器內建。連續整合機器人可以在任何具有Xcode 9的Mac上執行,無需安裝macOS Server。
新遊樂場模板。包括iOS模板,旨在在iPad中的Xcode和swift Playground中執行良好。
新建系統。Xcode新的構建系統的選擇性預覽提供了更高的可靠性和效能。
一般
更新了使用plist檔案定義文字巨集的方式。
為專案中的使用者,專案或特定使用者定義文字巨集。
自定義新的檔案頭。有關更多資訊,請參閱Xcode幫助中的自定義檔案頭。
有關更多資訊,請參閱Xcode幫助。
更新了索引引擎,包括在編譯檔案時編制索引的能力。
裝置視窗被分成用於裝置和模擬器的單獨窗格。
資產目錄
命名顏色支援。
新增了廣泛的應用程式圖示。
為App圖示集新增了更大的iOS營銷。
新增了保留影象向量資料以選擇動態型別縮放的選項。
增加了HEIF影象的支援。
建築與連線
新的Xcode 9 - 新建系統。
新增了一個在Swift中編寫的新構建系統的預覽。
提供更高的可靠性。
捕獲許多專案配置問題。
提高整體構建系統效能。
注意,構建系統效能不包括構建系統使用的編譯器,連結器和其他工具。
目前可選,並將成為未來版本的Xcode的預設值。
要選擇專案或工作區的新構建系統,請選擇“檔案”>“專案設定”或“檔案”>“工作區設定”,然後選擇“構建系統”型別的“新建構建系統(預覽)”。
有關與現有專案相容性的說明,請參閱Xcode版本說明。
功能
iOS熱點和多路徑TCP的新配置。
新的網路配置,包括內容過濾,代理DNS查詢以及代理TCP和UDP連線。
用於watchOS的新背景模式用於錄音和轉彎方向。
tvos背景提取的新模式。
核心ML
新的Xcode 9 - 核心ML編輯器。
為模型生成強型別介面。
用於裝置使用的模型編譯。
除錯
Xcode 9中的新功能 - iOS和tvOS裝置的網路除錯。
通過WiFi或有線網路除錯iOS和tvOS裝置。
通過Bonjour連線或輸入IP地址。
需要插入iOS裝置才能啟用網路除錯。
新的Xcode 9 - GPU幀捕獲和GPU覆蓋。
檢視命令緩衝區,附件,資源和呼叫堆疊。
修改著色器並將更改儲存到您的應用程式。
移動序列的時間軸。
檢查和修改附件中各個畫素的值,包括顏色值,alpha,深度等。
通過最小化紋理頻寬,最小化渲染畫素的數量,禁用混合階段,僅顯示線框,以及縮放鑲嵌的數量,來實現渲染狀態而不修改程式碼。
Xcode 9中的新功能 - 未定義的行為消毒劑。
使用未定義的行為消毒劑來查詢程式崩潰的源,意外的行為以及與未來版本的Xcode的不相容性。
檢測C語言中的幾種型別的未定義的行為,如整數溢位,無效的轉換和對齊違規。
在方案編輯器的“診斷”窗格中啟用未定義的行為消毒劑。
Xcode 9中的新功能 - 主執行緒檢查器。
檢測未在主執行緒上進行的AppKit,UIKit和WebKit方法呼叫。
在除錯期間自動啟用,並且可以在方案編輯器的“診斷”選項卡中禁用。
通過深度過濾來增強Breakpoint導航器。
新增了修改斷點的可視指示符。
擴充套件檢視偵錯程式以顯示檢視控制器,並使用SceneKit和SpriteKit檢視。
增強iOS電能表。
文件
新的統一瀏覽器,整合了參考,示例程式碼和文章。
改進文件搜尋。
用於在頁面之間導航的新跳轉欄。
整合示例程式碼下載。
儀器
用於在跟蹤文件的圖形區域中固定圖形的新拆分檢視。
新增了所有策略,並將策略選擇器移動到跟蹤文件頂部的新工具欄。
增強型金屬除錯儀。
金屬系統跟蹤VR支援檢視事件,如合成器活動,姿勢查詢等
介面生成器
增加了對資產目錄使用命名顏色的支援。
增加了對新邊距和基線檢視約束的支援。
新增了對自動佈局安全區域指南的支援。
增加了對全屏WatchOS應用程式的支援。
金屬2支援
Xcode 9中的新功能 - Capture API。
在你的程式碼中定義明確的捕獲邊界。
使用新MTLCaptureManager類和新MTLCaptureScope協議來程式設計設定,管理和觸發捕獲邊界。
使用擴充套件的Xcode GPU Capture UI手動啟動和停止捕獲。您還可以使用Xcode來捕獲應用程式中定義的API邊界。
Xcode 9中的新功能 - GPU計數器。
分析有關特定GPU捕獲的詳細分析指標。在iOS和tvOS中,GPU計數器顯示為命令編碼器的時間線;在macOS中,GPU計數器顯示為繪製或排程呼叫的時間線。
檢查渲染或計算流水線階段的執行時效能,例如頂點著色器,片段著色器,計算核心等。
比較每個流水線階段花費的GPU時間量,以查詢您的效能瓶頸。
Xcode 9中的新功能 - GPU備註。
在金屬著色語言程式碼中查詢優化機會。
在著色器編輯器中除錯特定於裝置的執行時問題。
遵循直接的解決方案和指示來改善您的程式碼。
Xcode 9中的新功能 - 智慧過濾。
通過鍵入到除錯導航器來查詢特定的除錯資訊。當您鍵入和突出顯示匹配的文字(例如資源,畫素格式,功能名稱,物件標籤等)時,Xcode會動態顯示建議。
通過從預定義的Metal物件選單中選擇選項來過濾搜尋結果。
使用多個匹配條件的多個過濾器。
新的Xcode 9 - VR支援。
檢視VR提交和左眼/右眼提交的表面。
新增了紋理檢查,用於檢查渲染目標中各個畫素的值,如顏色,alpha,深度等。
新增檢查輸出頂點屬性到緩衝區編輯器。
新增資料提示支援金屬物件,如紋理,緩衝區和取樣器。
重構
跨Swift,C,objective-c和C ++檔案的全域性重新命名。
檢視所有更改在一個地方。
轉換Swift和Objective-C格式之間的方法簽名。
根據需要更新屬性,getter,setter和合成的iVars。
一個按鈕更改。
修復 - 它會自動填充switch語句中的缺失情況,並且一鍵單擊協議一致的強制性方法。
提取所有支援的語言的方法功能,以及其他語言特定的本地重構。
模擬器
Xcode 9中的新功能 - 多個併發模擬器。
同時執行多個模擬器。
並行執行更多測試。
測試同步和其他多裝置工作流程。
適用於iOS和watchOS模擬器的新Chrome包括硬體控制元件,並允許輕鬆拖動和調整模擬裝置的大小。
從地圖,照片和Safari與模擬器共享資訊。
新增了關閉視窗或退出模擬器後執行模擬器的選項,以便與命令列工具的simctl命令更好地整合xcrun。
錄製模擬器的視訊。
通過選擇幫助>模擬器幫助獲取幫助。
源控制
新的原始碼管理導航器,用於檢視當前工作空間的分支,標籤和遠端儲存庫。
新的原始碼管理檢查器顯示所選導航器專案的詳細資訊。
分支歷史的新編輯器,包括一個方便導航的跳轉杆。
檔案差異的新的並行編輯器。
更容易和更快地訪問常見任務。
GitHub帳戶整合,輕鬆瀏覽和一鍵建立專案及相關的GitHub資源庫。
源編輯
新的Xcode 9 - 所有新的原始碼編輯器。
更快,更多功能查詢和更換。
快速滾動任何大小的檔案。
直接操縱程式碼結構,如令牌和塊。
重新設計原始碼管理的整合。
重新設計錯誤和警告訊息的介紹。
支援Markdown。
迅速
新的Xcode 9 - Swift 4。
Swift 4和Swift 3,Swift 4和Swift 3目標的一個編譯器可以在同一個專案中編譯。
改進的遷移者體驗,僅支援將選定目標遷移到Swift 4。
更快的通用程式碼和減少的程式碼大小。
相容性
Xcode 9.0需要執行MacOS Sierra 10.12.4或更高版本的Mac。
安裝
Xcode 9 beta可以與以前版本的Xcode共存。
Xcode的預發行版本可從developer.apple.com提供給授權的種子開發人員,打包在壓縮的XIP檔案中。要在beta期間安裝Xcode,請下載XIP檔案,將其拖到“應用程式”資料夾中,然後雙擊該檔案。XIP檔案擴充套件到位。
注意:如果您在Safari首選項中啟用了“開啟”安全“檔案下載”,則XIP檔案將下載並自動擴充套件到您的下載資料夾中。在啟動它之前將Xcode-beta拖到“應用程式”資料夾中。
在最終版本中,Xcode通過Mac App Store進行安裝。
開發人員資源
Apple開發人員計劃提供對Apple Store,Apple App,iPad,iPhone和iPod touch裝置的訪問App Store,Mac App Store和Apple TV App Store,附加支援和文件以及用於測試和部署的資源。有關更多資訊,請訪問Apple開發人員計劃網站。
訪問Apple開發人員論壇,討論任何蘋果開發者軟體,包括預釋出產品。
有關最新的安全資訊,請訪問https://support.apple.com/kb/HT1222。
關於SDK和模擬器
軟體開發工具包(SDK)是代表特定watchOS,iOS或macOS版本的API的框架(庫,標頭和資源)的集合。您的應用程式從SDK獲取的大多數功能實際上由主機作業系統提供,這使得正確的基本SDK和作業系統部署目標設定對應用程式相容性至關重要。Xcode自動構建最新的SDK並針對最新的作業系統。
如果您的應用程式不需要最新的作業系統功能,則可以使用Xcode專案設定中的“作業系統部署目標”選項將其配置為在先前版本的平臺作業系統上執行。如果您的專案是在舊版本的Xcode中建立的,您可以讓Xcode更新您的專案。有關此功能的詳細資訊,請參閱專案現代化。
重要提示:在將應用程式提交到App Store之前,您必須在執行受支援的目標作業系統版本或版本的裝置上進行測試。
自動簽名
如果您正在處理尚未更新到當前簽名過程的舊專案,則對簽名過程的更改可能會阻礙您的開發。
企業和App Store開發人員帳戶的推薦方法是在開發和分發期間使用Xcode自動簽名程式碼簽名應用程式。有關自動簽名的文件,請參閱Xcode幫助。如果您的舊專案未配置為使用自動簽名,請閱讀技術問答(QA1814)“設定自動配置的Xcode”,以瞭解可以重新配置Xcode專案的過程。
在使用其他技術之前,應考慮自動簽名,但如果您的專案需要手動簽名,請在Xcode幫助中搜尋“手動簽名”以檢視當前的手動簽名實踐。
專案現代化
當您開啟一個專案時,Xcode對其進行評估,以檢視是否應更新任何設定。此功能提供了一個簡單的方法來確保您的專案符合最新的SDK和最佳做法。
開啟問題導航器以檢視是否需要更新專案中的任何內容。您也可以在專案導航器中選擇專案,然後選擇編輯器>驗證設定。
如果問題導航器列出了現代化問題,請單擊該問題以檢視一個對話方塊,以解釋應該進行的更新,並允許您執行任何或所有更新。
單擊執行更改後,無論是否選擇進行所有更改,Xcode都不會再次顯示警告。要重新執行檢查,請在專案導航器中選擇專案,然後選擇編輯器>驗證設定。
相關文章
- XCode9新特性XCode
- Xcode9 初體驗XCode
- Xcode9無線除錯XCode除錯
- xcode9 關於去除Block警告XCodeBloC
- iOS 11 與Xcode9總結iOSXCode
- Xcode9匯入檔案問題XCode
- iOS11, Xcode9 and iphone X適配iOSXCodeiPhone
- iOS 製作靜態庫(.a檔案)(Xcode9)iOSXCode
- xcode9 pod update後友盟build不過XCodeUI
- Xcode9提示"Safe Area Layout Guide before iOS 9.0"XCodeGUIIDEiOS
- Xcode9之更好用的iOS-Simulator(模擬器)XCodeiOS
- 【解決】Xcode9斷點無法停在程式碼區XCode斷點
- PLSQL Language Reference-PL/SQL新功能-版本11.1 新功能SQL
- PLSQL Language Reference-PL/SQL新功能-版本11.2.0.1新功能SQL
- PLSQL Language Reference-PL/SQL新功能-版本11.2.0.2新功能SQL
- iOS11:Xcode9 你需要知道的都在這裡!iOSXCode
- 使用Java新功能StackWalkerJava
- 5 個 CSS 新功能CSS
- C# 3.0新功能C#
- Nodejs 的新功能NodeJS
- ENVI6.1新功能
- 升級xCode9 導航欄變化及一些小技巧XCode
- 12個蘋果iOS 12新功能彙總!iOS12新功能有哪些?蘋果iOS
- Java 18 新功能介紹Java
- Java 16 新功能介紹Java
- Java 20 新功能介紹Java
- iOS 8新功能彙總iOS
- iOS 8新功能總結iOS
- 圖靈社群2.1:新功能圖靈
- 圖靈社群2.0:新功能圖靈
- Spring Security 6.3 新功能Spring
- xcode升級xcode9 1之後報錯swift stdlib tool errorXCodeSwiftError
- win10系統有哪些新功能 win10系統新功能介紹Win10
- Flutter 熱更新功能實現Flutter
- Chrome 74 帶來的新功能Chrome
- Hadoop 3.0 中的新功能Hadoop
- Java 8 後的新功能梳理Java
- 【譯】Flutter 2.2中的新功能Flutter