<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Xcode 14 新特性一覽

          共 5606字,需瀏覽 12分鐘

           ·

          2022-06-15 11:32

          每年的 WWDC,除了發(fā)布最新的 iOS、iPadOS、watchOS、macOS 外,蘋果同樣會更新 Xcode。新版的 Xcode 帶來了很有新特性,來適配各個新系統(tǒng),同時提供更加便利的工具來提高我們的開發(fā)效率。還有一個比較重要的是,Xcode 14 初始包大小現(xiàn)在已經(jīng)降低到 7G+,相比 Xcode 13 的 10G+,減少了 30%,當(dāng)然,安裝后還是挺大的,所以 128G 的 mac 電影還是不夠用的。

          通常 Xcode Release Note 都是長長的一篇,除了新特性,還有各種已知的問題、已解決的問題等各種信息。我們這里把一些重要的更新梳理出來,供開發(fā)者們參考。

          通用

          Xcode 14 支持單個 target 多平臺,并有條件地包含特定平臺的依賴項(xiàng)、代碼、資源和構(gòu)建設(shè)置。

          Xcode 14 現(xiàn)在支持為 iPadOS 開發(fā) DriverKit 驅(qū)動程序。

          Xcode 14 包含一個新的 watchOS 應(yīng)用程序默認(rèn)模板,它將 WatchKit 應(yīng)用程序和 WatchKit 應(yīng)用程序擴(kuò)展目標(biāo)組合到一個單一的 Watch 應(yīng)用程序目標(biāo)中,從而簡化了代碼、資產(chǎn)和本地化管理。目前可以將單目標(biāo) watchOS 應(yīng)用程序部署到 watchOS 7 及更高版本。

          Apple Clang 編譯器

          在 Xcode 中創(chuàng)建的新 C++ 項(xiàng)目默認(rèn)使用 C++20。 

          資產(chǎn)目錄

          使用一個 1024x1024 的圖像來簡化應(yīng)用程序圖標(biāo),該圖像會針對其目標(biāo)自動調(diào)整大小。在資產(chǎn)目錄中應(yīng)用程序圖標(biāo)的屬性檢查器中選擇單一大小選項(xiàng)。不過仍然可以使用“所有尺寸”選項(xiàng)覆蓋單個尺寸。

          現(xiàn)在可以將 Finder 中的復(fù)制圖像直接粘貼到資產(chǎn)目錄大綱中。

          現(xiàn)在可以雙擊圖像槽以顯示打開的文件面板并選擇替換資產(chǎn)。

          可以為資產(chǎn)目錄中的自定義符號指定默認(rèn)呈現(xiàn)模式。將“渲染為”屬性設(shè)置為自動、模板、多色或分層。然后系統(tǒng)使用符號的默認(rèn)渲染模式,除非您明確覆蓋它。

          構(gòu)建系統(tǒng)

          Xcode 為構(gòu)建日志提供了一個新的輔助編輯器,專注于并行性以幫助識別構(gòu)建性能問題。此可視化將事件顯示為彩色塊網(wǎng)格,其中垂直軸表示并行度,水平軸表示時間。

          Xcode 14 現(xiàn)在可以與它們的 Swift 目標(biāo)依賴項(xiàng)并行編譯目標(biāo)。

          Swift 驅(qū)動程序是編排 Swift 前端調(diào)用的組件,現(xiàn)在已集成到 Xcode 的構(gòu)建系統(tǒng)中,允許對其他構(gòu)建系統(tǒng)任務(wù)和顯式調(diào)度的細(xì)粒度依賴。

          在 Build Phases 窗格中,現(xiàn)在可以在多選表視圖中批量編輯文件。當(dāng)編輯該表的平臺過濾器列時,系統(tǒng)會將更改應(yīng)用到選擇中的所有文件。

          僅 Swift 的框架和動態(tài)庫目標(biāo)可以使用 EAGER_LINKING 構(gòu)建設(shè)置選擇新的構(gòu)建系統(tǒng)優(yōu)化。啟用此功能后,Xcode 會在 Swift 編譯期間發(fā)出額外的工件,這允許 Xcode 更早地取消阻止下游目標(biāo)的鏈接,從而增加構(gòu)建中的并行性。

          調(diào)試

          內(nèi)存圖調(diào)試器現(xiàn)在顯示內(nèi)存圖中的所有傳入和傳出引用??梢哉{(diào)整新彈出框中的可見節(jié)點(diǎn)集。

          LLDB 現(xiàn)在在 Xcode 和命令行中顯示進(jìn)度更新以進(jìn)行長時間運(yùn)行的操作。

          現(xiàn)在可以使用 xcrun crashlog 調(diào)用 LLDB 的崩潰日志腳本。 

          調(diào)試應(yīng)用程序時,線程性能檢查器會在問題導(dǎo)航器和源代碼編輯器中顯示運(yùn)行時性能問題。在應(yīng)用程序目標(biāo)的運(yùn)行方案中選中線程性能檢查器復(fù)選框以啟用此功能。

          Xcode 現(xiàn)在在 Report navigator 中顯示一個新的啟動日志。該日志指示 Xcode 安裝、啟動和調(diào)試所采取的操作。

          文檔

          Xcode 中的 Swift-DocC 現(xiàn)在支持為 Objective-C 和 C API 構(gòu)建文檔。

          Xcode 14 生成的 Swift-DocC 文檔網(wǎng)站包括一個新的導(dǎo)航側(cè)邊欄,用于瀏覽和過濾文檔。

          默認(rèn)情況下,Xcode 14 生成的 Swift-DocC 文檔現(xiàn)在與大多數(shù)托管托管服務(wù)兼容,包括 GitHub Pages。

          Instruments

          現(xiàn)在,在時間過濾器處于活動狀態(tài)時,在時間間隔上運(yùn)行的聚合函數(shù)可以更準(zhǔn)確地計(jì)算其結(jié)果,僅基于與當(dāng)前時間過濾器相交的總間隔部分。

          詳細(xì)信息過濾器現(xiàn)在允許您在查看列表視圖時將過濾器應(yīng)用于特定列。您可以通過在顯示的值上使用上下文菜單或通過輸入標(biāo)記然后選擇標(biāo)記類型來添加這些類型的過濾器。

          Instruments 現(xiàn)在包括一個新的 Swift Concurrency 模板,用于跟蹤 Swift 并發(fā)原語的使用和行為。該模板包含:

          • 一種新的 Swift Tasks 工具,可顯示隨時間變化的任務(wù)狀態(tài)、總結(jié)任務(wù)狀態(tài)、提供詳細(xì)的任務(wù)敘述、說明結(jié)構(gòu)化并發(fā)關(guān)系并構(gòu)建任務(wù)創(chuàng)建調(diào)用堆棧的調(diào)用樹。

          • 一種新的 Swift Actors 工具,用于跨參與者跟蹤任務(wù)行為,顯示每個參與者的任務(wù)隊(duì)列,并幫助診斷參與者隔離代碼和爭用的問題。

          這些工具需要 Swift 并發(fā)運(yùn)行時中的工具,該運(yùn)行時首先在 macOS 13、iOS 16、tvOS 16 和 watchOS 9 或更高版本中可用。

          Instruments 有一個新的 Hang Tracing 工具,可以顯示應(yīng)用程序的主線程何時無法長時間處理傳入事件,從而可能導(dǎo)致 UI 掛起。此外,Time Profiler 和 CPU Profiler 儀器也顯示潛在的掛起。

          Instruments 中提供了一個新的 Core ML 模板。此模板包括新的 Core ML 和神經(jīng)引擎儀器以及 GPU 和時間分析器工具。使用此模板可幫助分析 Core ML 的使用情況并了解您的模型如何在設(shè)備上運(yùn)行。結(jié)合來自 Core ML、神經(jīng)引擎和 GPU 儀器的信息可以幫助跟蹤在加速硬件上執(zhí)行的操作。每個事件、模型和子模型都有匯總的時序數(shù)據(jù)。

          Instruments 有一個新的 Runloop 工具,它顯示了 runloop 的使用和單獨(dú)的迭代,并在視覺上區(qū)分了進(jìn)程中所有 runloop 的 runloop 睡眠和繁忙間隔。

          Interface Builder

          UISplitViewController 現(xiàn)在支持使用 Mac Catalyst 構(gòu)建的 Mac 應(yīng)用程序中的側(cè)邊欄。要啟用側(cè)邊欄,請?jiān)诓鸱忠晥D控制器的屬性檢查器中設(shè)置主要樣式。

          Interface Builder 現(xiàn)在可以異步更新 scene。

          WKWebView 上會出現(xiàn)一個新復(fù)選框,以啟用標(biāo)準(zhǔn)查找和替換 UI。

          現(xiàn)在可以通過控件的圖像檢查器選擇符號,使用 NSButton 和 NSImageView 編輯 SF 符號的默認(rèn)配置(包括字體、比例和粗細(xì))。

          支持 iOS 的 UIPasteControl 以允許通過單擊粘貼內(nèi)容而無需粘貼通知或警報(bào)。該控件可以針對任何符合 UIPasteConfigurationSupporting 的對象(例如,UIResponder)來接收粘貼的內(nèi)容。

          通過符號庫選項(xiàng)卡訪問和搜索 SF 符號。打開庫(Xcode > View > Show Library)并單擊 Symbols 選項(xiàng)卡??梢詫⒎柾系皆创a編輯器中。

          本地化

          現(xiàn)在可以導(dǎo)出本地 Swift 包進(jìn)行本地化。Xcode 為項(xiàng)目或工作區(qū)中包含的所有項(xiàng)目和 Swift 包生成單個本地化目錄。還可以使用 xcodebuild -importLocalizations 和 xcodebuild -exportLocalizations 來導(dǎo)出或?qū)?Swift 包。

          Organizer

          Xcode Organizer 中的掛起報(bào)告提供有關(guān)應(yīng)用程序掛起的診斷報(bào)告,以幫助提高響應(yīng)能力。為單個應(yīng)用程序版本生成報(bào)告并按嚴(yán)重性排序。它們包括可用于調(diào)試的主線程上發(fā)生的掛起的示例日志,以及報(bào)告中受影響設(shè)備和 iOS 版本的統(tǒng)計(jì)信息。

          預(yù)覽

          Xcode Previews 現(xiàn)在可以在物理設(shè)備上運(yùn)行,而無需包含應(yīng)用程序,從而可以輕松地在設(shè)備上預(yù)覽框架和 Swift 包。Xcode 會自動為您的默認(rèn)簽名身份準(zhǔn)備適當(dāng)?shù)暮灻麘?yīng)用程序來托管預(yù)覽。

          Xcode Previews 現(xiàn)在可以在決定使用哪個應(yīng)用程序來托管預(yù)覽時使用該方案的可運(yùn)行文件。例如,在一個應(yīng)用程序的完整版和 beta 版都共享一個框架的項(xiàng)目中,Xcode Previews 會根據(jù)方案中的選擇自動選擇要啟動的應(yīng)用程序進(jìn)行預(yù)覽。

          Xcode 現(xiàn)在在其自己的專用頁面上顯示每個預(yù)覽,其中包括允許您更改常用設(shè)置(如配色方案、方向或動態(tài)字體大?。┒鵁o需編寫任何代碼的新控件。

          Xcode 預(yù)覽現(xiàn)在默認(rèn)是交互式的。

          重構(gòu)

          添加了重構(gòu)操作以添加顯式 Codable 實(shí)現(xiàn)。

          簽署和分發(fā)

          開發(fā)簽名的 DriverKit 驅(qū)動程序現(xiàn)在支持自動簽名。分發(fā)仍需要獲得 Apple 的批準(zhǔn),并在 Apple Developer 網(wǎng)站上手動配置附加功能。

          模擬器

          模擬器現(xiàn)在支持在具有 Apple silicon 或 T2 處理器的 Mac 計(jì)算機(jī)上的 macOS 13 中運(yùn)行時,iOS 16 中的遠(yuǎn)程通知。模擬器支持 Apple Push Notification Service Sandbox 環(huán)境。您的服務(wù)器可以通過連接到 APNS 沙箱 (api.sandbox.push.apple.com) 向在該模擬器中運(yùn)行的應(yīng)用程序發(fā)送遠(yuǎn)程通知。每個模擬器都會生成該模擬器和運(yùn)行它的 Mac 硬件組合所特有的注冊令牌。

          設(shè)備注冊令牌的長度可變。模擬器中的令牌可能大于當(dāng)前的物理設(shè)備令牌。不要為這些令牌硬編碼任何特定的長度或格式。

          simctl 現(xiàn)在支持控制模擬位置,包括運(yùn)行場景和在航點(diǎn)列表之間進(jìn)行插值。

          除了現(xiàn)有的運(yùn)行時捆綁格式外,模擬器現(xiàn)在還支持運(yùn)行時磁盤映像。磁盤映像被添加到受系統(tǒng)完整性保護(hù)保護(hù)的系統(tǒng)管理存儲位置,并安裝在系統(tǒng)管理的安裝點(diǎn)。

          源代碼編輯器

          現(xiàn)在,當(dāng)滾動瀏覽文檔時,Xcode 將代碼結(jié)構(gòu)的元素固定到編輯器的頂部。

          Swift 文件中的錯誤現(xiàn)在為添加缺失的導(dǎo)入提供了修復(fù)。

          添加了對 Swift 正則表達(dá)式的語法高亮和編輯支持。您現(xiàn)在可以使用 Editor > Refactoring > Convert to Regex Builder 將正則表達(dá)式文字轉(zhuǎn)換為其等效的正則表達(dá)式構(gòu)建器。在正則表達(dá)式文字內(nèi)移動插入點(diǎn)時,正則表達(dá)式的封閉子結(jié)構(gòu)會突出顯示。(82540073)

          Xcode 現(xiàn)在提供了一個文件模板,用于為您的 iOS 應(yīng)用程序選擇觸控替代方案。您可以使用觸控替代方法在帶有 Apple 芯片的 Mac 上與您的應(yīng)用程序交互 - 例如,按住 Option 鍵可將觸控板用作虛擬觸摸屏。要啟用,請選擇 File > New File > iOS > Resource > Touch Alternatives,然后配置新添加的 com.apple.uikit.inputalternatives.plist 文件來為您的應(yīng)用選擇觸控替代品。(84271952)

          Swift 中的代碼完成現(xiàn)在提供了成員初始化程序片段。

          Swift 中的代碼完成現(xiàn)在提供了 if case 語句的片段。

          StoreKit

          Xcode 現(xiàn)在能夠?qū)?App Store Connect 中的應(yīng)用內(nèi)購買產(chǎn)品同步到 StoreKit 配置文件中,以便在 Xcode 設(shè)置中更快地測試 StoreKit。還有一個更新的事務(wù)管理器,帶有過濾和事務(wù)檢查器。

          Swift Packages

          由于具有相同名稱而發(fā)生沖突的模塊現(xiàn)在可以通過別名來消除歧義。包清單引入了一個新參數(shù)“moduleAliases”;它允許用戶為沖突的模塊定義唯一的名稱,并以新名稱構(gòu)建它們,而無需更改任何源代碼。

          現(xiàn)在可以在 Xcode 中使用 Swift Package 命令插件,方法是使用 File > Packages 菜單或 Xcode 文件導(dǎo)航器中的上下文菜單。包的依賴項(xiàng)提供的任何命令插件都可用??梢赃x擇將命令應(yīng)用到包的哪些目標(biāo),并且可以將自定義參數(shù)傳遞給插件。報(bào)告導(dǎo)航器顯示運(yùn)行命令的結(jié)果。如果命令指示它需要寫入包的源文件,Xcode 會請求許可并讓您在運(yùn)行插件之前檢查插件的源代碼。

          Xcode 現(xiàn)在為 Swift Package 插件提供了 XcodeProjectPlugin API,該 API 擴(kuò)展了 Swift Package Manager 的 PackagePlugin API。使用這個 API,插件可以獲得 Xcode 項(xiàng)目結(jié)構(gòu)的簡化描述。這讓在 Xcode 中運(yùn)行的適配插件可以在 Xcode 項(xiàng)目中使用這個 API。您仍然可以通過 Xcode 中的 Swift 包使用尚未適應(yīng)支持 Xcode 項(xiàng)目的包。

          測試

          XCTAssertThrows() 和相關(guān)宏現(xiàn)在在捕獲除 NSException 以外的拋出異常(包括 C++ 異常)時提供更豐富的診斷信息。

          XCTest 包括一個新的 Swift-only 期望類型 XCTKeyPathExpectation,可以使用它代替 XCTKVOExpectation 來觀察對 Swift 鍵路徑的更改。

          在活動方案或測試計(jì)劃中啟用了并行化的測試目標(biāo)現(xiàn)在彼此并行執(zhí)行。以前,每個目標(biāo)都是串行執(zhí)行的,每個目標(biāo)中的測試類是并行執(zhí)行的?,F(xiàn)在,Xcode 并行執(zhí)行目標(biāo)和其中的類,更喜歡首先跨目標(biāo)扇出。對于具有大量目標(biāo)的套件,這可能會導(dǎo)致顯著加速(結(jié)果因硬件和套件組成而異)。未啟用并行化的測試目標(biāo)繼續(xù)相對于其他目標(biāo)單獨(dú)執(zhí)行。

          一旦測試完成并遇到錯誤或故障,XCTest 將捕獲系統(tǒng)診斷。此行為可通過測試計(jì)劃或 xcodebuild 命令行界面進(jìn)行控制。


          瀏覽 118
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩日屄视频 | 亚洲欧美色图在线 | 国产黄色网色视频 | 色鬼综合| 亚州精品一区 |