Xcode9 新功能

Kaitiren發表於2017-06-26


翻譯: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcode/xcode_9/xcode_9.html#//apple_ref/doc/uid/TP40004626


新功能概述:

裝置環境:Mac OSX 10.12.5、iOS11、Xcode9 PS:這是WWDC2017的新功能,iOS11以上,Xcode9這是剛性要求。這個 功能不好找,就記下來了
Xcode 9的新功能
擁有為Apple平臺創造出驚人應用所需的所有功能,Xcode 9在編輯甚至最大的檔案時,速度和速度都非常快速。它也比以往更瞭解您的程式碼,因此您可以直接在編輯器中選擇和編輯結構甚至轉換選擇。強大的新的重構任務發生到位,在Swift,Objective-C甚至使用者介面檔案上重新命名符號,而不會跳過節拍。而與Swift 4中的源相容性,Xcode 9使用相同的編譯器來構建現有的Swift 3程式碼和更新的Swift 4程式碼,因此您可以按照自己的速度進行遷移。
全新編輯
原始碼編輯器已經完全重建了驚人的速度。它以不間斷的速度滾動,無論檔案大小。而且,通過偏好設定,您可以更好地控制線間距,多種字型樣式,甚至游標型別。新的命令點選手勢可以輕鬆地根據結構視覺化和選擇程式碼段。問題已被重新設計,以便您的程式碼與Fix-it被很好地流動,它們被分組在一起,因此您可以在一次點選中提交多個更改。
在Markdown檔案中,您鍵入時,標題,粗體和斜體文字,連結和其他格式將立即在編輯器中呈現。Jump Bar甚至可以瞭解Markdown結構,因此您可以快速瀏覽README.md和文件檔案。
重構和變換
新的編輯器超出了文字輸入與一個新的內建重構和轉換引擎。當您選擇符號或程式碼塊時,編輯器將提供強大的操作,如“提取”或“重新命名”。然後,Xcode將直接在編輯器中更新您的程式碼結構,讓您專注於您正在處理的程式碼。Xcode 9支援以下轉換和重構:
· 新增缺少的協議要求
· 生成缺少的實現存根
· 為抽象方法新增缺少的覆蓋
· 提取到區域性變數
· 提取方法/表示式
· 在switch語句中展開預設值以生成所有適用的情況
· 將/ else轉換為/從switch語句
· 在NSLocalizedString巨集中包裝字串
這僅僅是個開始。Xcode的本地轉換引擎將作為Clang編譯器專案的一部分開源。
原始碼控制和GitHub
Xcode 9使原始碼控制(與GitHub)更容易,更緊密地整合在一起。您的GitHub帳戶內建於Xcode中,克隆視窗會顯示您所有的個人GitHub儲存庫,以及您新增了星標的所有儲存庫。從這個視窗,您可以搜尋所有GitHub,只需點選一下即可檢視專案。
Git的支援現在位於前端,並具有全新的原始碼管理導航器。快速檢視每個分支機構,標籤和遙控器的提交時間表。檢查一個條目以檢視所有受影響的檔案或雙擊提交以檢視所有更改的內容。通常的操作,如建立和合並分支,可以在導航器中快速訪問。
Swift 4
由蘋果領導的Swift.org開源社群幫助Swift快速構建,同時生產更快的應用程式和更小的可執行檔案。新的Swift 4編譯器現在瞭解Swift 3程式碼。您可以輕鬆地移動到Xcode 9,選擇您的應用程式的哪些部分準備移動到Swift 4,然後稍後遷移其餘的程式碼。該語言還具有增強的String型別。
無線連線
選擇您的本地網路上的任何iOS或tvOS裝置來安裝,執行和除錯您的應用程式,而無需將USB線插入到Mac中。首次使用新的iOS裝置時,只需點選“通過網路連線”核取方塊,該裝置就可以從網路上提供。無線開發也適用於其他應用程式,包括儀器,輔助功能檢查器,Quicktime播放器和控制檯。
模擬和測試
新的模擬器應用程式大大升級,啟動時間更快,外觀新穎 - 視窗現在就像您正在模擬的裝置一樣。裝置中的按鈕按預期工作,甚至可以從螢幕邊緣模擬手勢。觸控欄支援意味著快速操作,如旋轉,只是一個輕拍。
您可以執行模擬器的多個例項來通過並行執行來加速測試,或者測試協調諸如在多個裝置上同步到iCloud的任務的應用程式。從命令列輕鬆啟動模擬器,即使在駕駛多個例項時也是完美的自動化測試。而Xcode伺服器在所有Mac上設定更簡單,因為它現在內建到Xcode中,不再需要單獨的macOS Server應用程式。繼續構建和測試您的應用程式並不容易。
更快索引速度
一個全新的索引引擎作為構建過程的一部分執行,因此Xcode自動了解您的程式碼。使用索引的任務(如快速開啟)快得多。搜尋大型專案感覺不太快 - 高達50倍。而新的構建系統顯著降低了協調編譯器,連結器和其他工具的任務的開銷
本文翻譯與 https://developer.apple.com/xcode/
此方式僅適用區域網內,同時軟體有硬性要求,並且速度比線略慢一點 ,還可以接受,但是隻支援ios11。

官方內容:

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支援。

重構。重構內建於編輯體驗之中,並可跨SwiftObjective-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方法呼叫。

在除錯期間自動啟用,並且可以在方案編輯器的“診斷”選項卡中禁用。

主執行緒檢查器與Swift和c語言一起使用。

通過深度過濾來增強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都不會再次顯示警告。要重新執行檢查,請在專案導航器中選擇專案,然後選擇編輯器>驗證設定。



相關文章