這一篇文章給你們介紹:Xcode 11 Beta 5,雖然是
beta版本
,可是在不久的未來必未來臨,例如:SwiftUI + Combinepython
Xcode 11
包括用於iOS 13
、macOS Catalina 10.15
、watchOS 6
和tvOS 13
的sdk
。Xcode 11
支持iOS 8及以上版本
、tvOS 9及以上版本
、watchOS 2及以上版本
的設備上調試。Xcode 11
要求Mac
運行macOS Mojave 10.14.4或更高版本
。這是版本要求ios
Xcode 11 beta
支持SwiftUI注意:
SwiftUI
開發工具只能在macOS Catalina 10.15 beta版
上運行。c++
如今,您能夠獨立於系統外觀設置更改Xcode的外觀。(41165587)git
Xcode
支持使用 xcodebuild
或 xcrun altool
從Organizer window
或命令行上傳應用程序。Xcode再也不包含Application Loader
。(29008875)github
如今,當啓動嵌入在 Xcode
中的 Instruments
、模擬器和其餘開發工具時,macOS
上的 LaunchServices
會考慮所選擇的Xcode
。例如,當您在Finder
中雙擊一個Instruments trace
時,將啓動所選Xcode
的Instruments
版本。從命令行中更改Xcode
和Xcode -select
一塊兒使用的是哪一個Xcode
。(6757601)chrome
編輯器能夠添加到任何窗口,而不須要助理編輯器。編輯器是使用跳轉欄中的「Add Editor」
按鈕或File > New > Editor command
添加的。如今,每一個編輯器均可以處於如下三種模式之一:「Editor Only」, 「Editor and Assistant」 或 「Editor and Canvas」
。後兩種模式在可用時自動顯示相關內容。當使用多個編輯器時,View > Editor > Focus command
可用於臨時展開活動編輯器,以填充整個窗口,隱藏其餘編輯器。對於源代碼控制支持,工具欄中的Code Review
按鈕將替換Comparison Editor
。「Show Authors」
命令如今能夠從Source Editor
的編輯器菜單中得到。SCM日誌
如今位於檢查器區域。(43806898)shell
Mac Catalyst
應用程序中使用SwiftUI
。所需的軟件包安裝程序再也不沒必要要地出如今macOS 10.15
上。(51080815)編程
Foundation繼承 Combine framework 如今能夠了!可使用如下Foundation
和Grand Central Dispatch
與Combine
進行集成:keyvalueobserver
、NotificationCenter
、RunLoop
、OperationQueue
、Timer
、URLSession
、DispatchQueue
、JSONEncoder
、JSONDecoder
、PropertyListEncoder
、PropertyListDecoder
和@Published屬性包裝器。(51241500)canvas
當使用帶有暗黑系統外觀的淺色主題時,問題文本再也不是淺色的。(48230278)swift
Clang 如今提供了一種機制來控制退出時析構函數註冊。您可使用 -fno-c++-static-destructors
標誌全局禁用這些函數,或者應用屬性[[clang::no_destroy]]
來禁用特定變量的析構函數。還添加了屬性[[clang:::always_destroy]]
,以便在使用 -fno-c++-static-destructors
時啓用特定變量的析構函數。(21734598)
做爲擴展,全部語言模式如今都支持具備固定底層類型的c++ 11枚舉。(43831380)
當使用在活躍 Standard version 中被棄用的標準庫設施時,將發出棄用警告。(46881474)
堆棧檢查在全部平臺上都是默認打開的,以防止內存損壞。(25859140)
默認狀況下,機器碼outliner
在 -Oz
下是打開的。它經過跨函數標識相同的代碼序列來減少代碼大小。這些序列被封裝在一個編譯器生成(「outlined」)
的函數中。每一個原始代碼序列都替換爲對所述函數的調用。(46385499)
爲了提升性能和安全性,靜態連接器(ld)如今將標記爲常量的全局變量移動到一個新的段中:__DATA_CONST
。這些全局變量可能由編譯器生成的指針組成,動態連接器(dynamic linker, dyld)
須要在加載期間修復這些指針,可是其餘方面是常量,好比vtables
和顯式聲明的常量指針。一旦dyld
完成加載映像,它就會使__DATA_CONST只讀。這種更改不會影響行爲良好的代碼,可是可能會破壞依賴於未定義行爲的代碼,好比使用類型雙關來編寫聲明爲
const`的指針。(50898833)
static int value1 = 0; // Stored in __DATA
static int value2 = 0; // Stored in __DATA
const int * const valuePtr = &value1; // Stored in __DATA_CONST
// ERROR: Attempting to store a value to a constant pointer
(int *)valuePtr = &value2;
複製代碼
release、autorelease、retain、alloc或allocWithZone
。(50253394)當 Xcode 將 if (@available(…))
連接到運行在 iOS 1三、macOS 10.1五、watchOS 6或tvOS 13 上的應用程序或框架中時,if (@available(…))
檢查能夠正常工做。(51109405)
刪除 <experimental/optional>
和 <experimental/ variable >
標頭。使用c++ 17
中的 < optional >和< variant >
來替代。(50175894) 解決了優化器循環不變代碼運動傳遞中的長編譯時問題。(39648918)
若是您按下 Command-U
或在 navigator
區域中選擇一個 Localized assets,Xcode將再也不崩潰。(52211868)
修正了在使用 Interface Builder 的圖像檢查器時,若是資產目錄包含一個符號和位圖圖像資產,而且它們具備相同的名稱,則可能發生崩潰的問題。(51279661)
添加到資產目錄的新用戶定義圖像將顯示在圖像視圖圖像組合框中(51090225,51120715)
修正了致使 Mac Catalyst 的 NSDataAsset 在運行時返回nil的問題。(50022757)
解決了一個問題,當一個資產具備爲iPad 和 Mac Catalyst指定的變量時,會致使 NSDataAsset 查找返回錯誤的數據。(49990047,51278348,51288447)
若是測試是使用測試計劃運行的,如今可使用測試計劃的代碼覆蓋率設置來配置哪些目標應該包括在代碼覆蓋率結果中。(50502861)
Xcode 默認狀況下使用響應文件將輸入文件傳遞給Swift編譯器。要關閉此行爲,請將 USE_SWIFT_RESPONSE_FILE
設置爲 NO
。
您能夠在目標中使用無限數量的 Swift 文件。(35879960)
運行腳本階段和自定義構建規則能夠聲明和發出依賴項文件,使用一些編譯器和構建工具使用的 makefile
樣式的 .d
格式輸出。在肯定是否應該執行規則或階段時,構建系統將檢查列出的文件,以瞭解後續構建過程當中的更改。(49226986)
項目如今可使用定製的構建規則來處理頭文件(APPLY_RULES_IN_COPY_HEADERS)
。(48185100)
自定義構建規則如今能夠指定在執行期間使用的附加靜態輸入文件。使用SCRIPT_INPUT_FILE_#
環境變量爲規則腳本提供這些已解析的輸入文件路徑。(49645853)
Xcode 從信息中刪除了一些條目。若是條目不適合爲其構建的平臺,則在構建時使用產品的 plist
文件,這對於配置爲爲多個平臺構建的目標很是有用。能夠經過將構建設置 DISABLE_INFOPLIST_PLATFORM_PROCESSING
設置爲 YES
來禁用此行爲,在這種狀況下,目標必須承擔適當管理這些條目的責任。(47797497)
自定義構建規則如今能夠聲明它們應該在每一個體繫結構中運行一次(默認狀況下),或者在全部體系結構中只運行一次。這對於與體系結構無關的自定義規則很是有用,例如,代碼生成工具生成的文件不會因體系結構而異。(47716990)
XCFramework 容許將適用於多個平臺(包括iOS設備、iOS模擬器和Mac Catalyst) 的二進制框架或庫打包到一個可分發的. XCFramework包中,開發人員能夠在本身的應用程序中使用這個包。能夠將.xcframework
包添加到Xcode
目標的連接庫階段,而且Xcode在構建時使用所包含框架或庫的正確平臺版本。使用xcodebuild -create-xcframework
命令行支持建立框架。捆綁在XCFramework
中的框架或庫應該與發行版構建設置設置爲 YES
的構建庫一塊兒構建。(49948269)
增量構建可能沒法對項目的非源相關更改(如資源文件修改)進行正確的協同設計,這可能致使應用程序沒法啓動。(41254808) 解決方案 :在相同的目標中更改源文件以觸發 codesign
流程,或者執行一個乾淨的構建。
爲Mac Catalyst更新iOS應用程序可能會顯示新的錯誤診斷,說明Mac
上沒有某些框架或功能。若是其中一個診斷顯示錯誤,能夠經過將VALIDATE_WORKSPACE
構建設置設置爲NO
來禁用它。(50607174)
新的構建系統不計算到用戶主目錄的構建設置路徑中的前導波浪號(~)。(41339901) 解決方法:使用 $(HOME)
代替。
若是目標啓用 RUN_CLANG_STATIC_ANALYZER
,那麼單個文件處理命令(如Compile、Preprocess、Show Assembly
)將不能正確工做,由於它們生成靜態分析器輸出文件,而不是適當的輸出。(43340227) 解決方法:在目標中禁用RUN_CLANG_STATIC_ANALYZER
。
若是應用程序承載的測試目標的構建(其中定義了TEST_HOST
)失敗,那麼後續的構建可能會在簽署應用程序產品時失敗,由於在應用程序的初始簽名時,測試目標是不完整的,而且是未簽名的。(43402096) 解決方法 :執行一個乾淨的構建。或者,從app target
的產品中手動刪除未簽名的測試包並從新構建。
覆蓋iOS
架構和有效架構構建設置的目標可能須要刪除或限制覆蓋,以便正確地爲Mac Catalyst
構建。(51074742)
當在macOS 10.15
上使用Xcode
時,一些文件——特別是.xib文件和storyboard文件——可能會被複制而不是編譯,從而致使不正確的構建產品。(49351105) 解決方法:在正在複製的文件的文件檢查器中,將類型彈出框從默認值切換到,而後返回默認值。這將重置項目文件中的文件類型爲正確的類型,並使構建系統可以將其匹配到正確的工具來處理它。
當用戶第一次構建時,可能會出現一個彈出窗口,說明SimulatorTrampoline
但願訪問桌面文件,由於運行在simulator
中的ibtool
須要訪問這些文件來編譯故事板。(51114450) 解決方案:容許在提示符中訪問文件。
當使用 Xcode Server
中的測試計劃在多個配置下運行測試時,集成報告如今能夠正確地顯示測試所運行的每一個配置的名稱。(53402104)
若是更改活動測試計劃文檔在test navigator
是可見的,如添加或刪除一個測試目標,或啓用或禁用一個單獨的測試或測試類——navigator
如今更新當即響應的變化而變得不一樣步測試計劃。(52065983)
若是修改了活動測試計劃文檔中的設置,而且隨後調用test Again操做來從新運行上次運行的測試,那麼修改後的設置如今將生效,而不是使用先前的設置。(51145300)
macOS
如今支持按需資源(ODR)。(50358184)
使用遺留的構建系統特性,如構建規則或腳本階段發現的依賴文件、定製構建規則的輸入聲明,或APPLY_RULES_IN_COPY_HEADERS
構建設置,將生成一個錯誤,而不是無聲地被忽略。(51318274)
在Watch
目標中,將架構構建設置覆蓋爲僅僅armv7k
並不會阻止部署到TestFlight
或Xcode
的企業分發工做流。(51104990)
索引器不會在索引Swift
響應文件以前等待執行構建。(52110336)
在關閉和從新打開一個項目以後,或者在使用xcodebuild
執行增量構建時,來自先前構建的關於不兼容框架、應用程序擴展和代碼簽名設置的診斷信息如今會在問題導航器和構建日誌中顯示。(51131884)
默認狀況下,Xcode
的新構建系統不會檢測做爲shell腳本
構建階段輸入聲明的目錄中的更改。啓用構建設置allow_recursive_script_input
會致使它這樣作。可是,若是目錄中的任何文件是由依賴於腳本階段輸出的任務生成的,則會發出
依賴循環錯誤,必須經過重組目標來解決。(41126633)
當構建一些使用隨需應變資源的目標時,構建系統再也不崩潰。(49072702)
python3
和pip3
命令再也不錯誤地失敗,再也不出現聲稱只安裝命令行工具時須要Xcode
的錯誤。(53284703)
當使用macOS Catalina 10.15 beta 4
時,可使用默認的shell
路徑使用pip3
。(50877974)
Python 3
在命令行工具包中可用。(51727440)
Xcode
的內置usdz_converter
工具已被棄用,將被刪除。使用加強現實資源下的更新工具套件Augmented Reality。(52922369)
如今有一個複選框,使您可以區分string
屬性的默認值是nil仍是空字符串。設置時,若是沒有指定其餘默認值,則默認值爲空字符串。(26534406)
Xcode 11
數據模型文件格式再也不爲實體或屬性寫出或保存已廢棄的同步服務信息。(32524648)
Core Data
數據模型編輯器在使用Xcode 11
數據模型文件格式和適當的部署目標時,添加了對派生屬性的支持。(45567066)
當使用Core Data
建立應用程序時,會出現一個新的複選框來啓用CloudKit
對數據模型默認配置的支持。對於使用新的配置檢查器的現有數據模型,也能夠啓用此功能。當數據模型配置支持CloudKit
時,數據模型編輯器執行額外的驗證,以確保模型符合Core data CloudKit
支持的需求。(51126024)
與CloudKit
一塊兒使用時,Core Data
模型中的屬性必須是可選的,或者具備默認值。Xcode 11 beta 3
和更早版本錯誤地要求這樣的屬性是可選的,而且具備默認值。(51593507)
若是使用UUID
屬性類型、URI
屬性類型或持久性歷史記錄特性,在使用Xcode 9
中使用的格式以前的數據模型文件格式時,將正確地生成錯誤。(50188371)
Create ML
中提供了活動分類、表格分類和單詞標記模板。
Create ML
中提供了對象檢測和文本分類模板,加入了圖像分類和聲音分類模板。從macOS 10.15 beta 3
開始使用這些模板。(52009035)
您如今可使用聲音分類預覽直接從麥克風對聲音進行分類。(52131594)
Live listen
在沒有麥克風的設備上崩潰。(53405469)視圖調試器如今在檢查器中顯示NSImage 實例的名稱。(35516797)
用於調試視圖層次結構的Size檢查器中的圖形篩選器標識所選視圖上的哪些屬性受到約束。在篩選器中選擇屬性將顯示的約束縮小到與該屬性匹配的約束。標準修飾符鍵(如Shift和Command
)可用於展開顯示匹配這些屬性的約束的組合的選擇。(44864394)
如今能夠調試watchOS
應用程序的視圖層次結構。(45173634)
如今,您能夠從設備和模擬器窗口模擬鏈接設備的網絡條件和熱狀態。(44608479)
視圖調試器在調試導航器和畫布中顯示UIWindowScene 實例。(45378799) 能夠在scheme選項中禁用視圖調試。(45928299)
用於調試視圖層次結構的大小檢查器有關於約束的更多細節,包括過濾器、編輯器中的懸停高亮顯示和更好的描述。(16153188)
視圖調試器支持調試Mac Catalyst
應用程序。(37507479)
視圖調試器檢查器顯示 NSImageView 和 NSButton 的 contentTintColor 。(49506123) for
視圖調試器如今顯示iOS
命名的名稱和系統顏色。(45162028)
視圖調試器顯示特徵集合信息。(45161975)
視圖調試器顯示UIImage
實例的名稱。(45327089)
視圖調試器如今顯示符號信息,如基線和中線。(49508874)
調試欄外觀切換器支持在iOS
上在暗模式和亮模式之間切換。(45161907)
Scheme
編輯器的Diagnostics
選項卡中的「暫停問題」複選框被常規斷點替換。可使用斷點導航器建立運行時問題斷點。(31409112)
使用環境覆蓋(可從調試欄訪問)覆蓋已調試流程的外觀、動態類型和可訪問性選項等系統設置。(45848655)
調試器支持使用崩潰日誌(。崩潰文件)。(48408310)
調試器能夠調試tvOS
的頂層擴展。(48869701)
在安裝或調試應用程序時,Xcode
更喜歡使用Wi-Fi鏈接手錶。 斷點的VoiceOver
操做菜單包含一個跳轉到相應代碼行的操做。(44941178)
在調試帶有約束的視圖時,雙擊size
檢查器中的約束將在編輯器中選擇該約束,並在檢查器中顯示約束的信息。(18842905)
在 watchOS 6
中,APNs請求頭中須要一個APNs -push-type
鍵。爲正在發送的通知類型指定警告或背景。Xcode
中的模板APNs
文件默認狀況下不包含這個頭文件。(50709418)
調試符號可能沒法用於Apple Watch
。(26995636) 解決方案:驗證您有一個工做的互聯網鏈接,並在首選項>賬戶中登陸到您的蘋果ID。
在watchOS
模擬器中調試手錶應用程序可能會在模擬器首次啓動時失敗。(50263836) 解決方法:等待手錶模擬器完成引導,而後再次開始調試。
App
和熱狀態跟蹤的能量衝擊儀可能會中止更新。(50968828) 解決方法:中止並從新運行應用程序。
修正了當在調試導航器中拖動進程項時,macOS 10.15上的Xcode
崩潰。(48453949)
您能夠調試設備上的交互式預覽。(51183159)
當使用運行當前beta
操做系統發行版的設備時,能量報告顯示設備的熱狀態。(52349364)
調試可用於設備上的預覽。(47668840,51139546)
Environment override
按鈕出如今調試欄中,用於watchOS
和iOS
應用程序擴展目標,而不須要先暫停進程。(51203640)
預覽調試會話再也不在預覽不可見時結束。(50593619)
添加到正在運行的進程中的運行時問題斷點行爲正確。(49433870)
視圖調試器中的項能夠在上下文菜單的Debug
導航器中顯示。(18598643)
在調試視圖層次結構時改進了Swift
類名的格式。(39679411)
修正了調試控制檯將顯示頁面列指南的問題。(49693398)
斷點支持VoiceOver
命令來打開快捷菜單。 (44940944)
WatchKit
框架再也不包含在 iOS SDK
中。若是您正在使用來自iOS
的WatchKit api
,則須要刪除此使用。WatchKit框架仍然能夠在watchOS
上使用。若是您正在使用來自iOS的WatchKit api
來推斷配對的Apple Watch
的功能可用性,那麼在向Feedback Assistant. 提交反饋時,請包含關於您的用例的信息。(49707950)
爲了與遺留軟件兼容,macOS
中包含了Python、Ruby和Perl
等腳本語言運行時。在macOS
的將來版本中,腳本語言運行時在默認狀況下不可用,可能須要安裝一個附加包。若是您的軟件依賴於腳本語言,建議您將運行時捆綁在應用程序中。
不推薦使用Python 2.7
。這個版本包含在macOS
中,以便與遺留軟件兼容。macOS
的將來版本將不包括Python 2.7
。相反,建議您在終端中運行python3
。(51097165)
Quartz Composer
框架不受歡迎。從macOS 10.15
開始,Quartz Composer
框架將被標記爲不同意使用,而且爲了兼容性的目的仍然保留。若是您的應用程序使用的是Quartz Composer
,那麼能夠過渡到Core Image、SceneKit或Metal
等框架。(50911608)
命令行工具對Subversion
的支持——包括svn、git-svn
和相關命令——再也不由Xcode
提供。若是須要Subversion
或相關的命令行工具,能夠經過運行xcode-select——install
來安裝命令行工具包。(50266910)
當同時運行到多個目的地時,使用xcodebuild
進行測試可能會致使崩潰。(52962341) 解決方案:經過將 - Disable -concurrent-destination-test
標誌傳遞給xcodebuild
來禁用併發目標測試。
使用xcodebuild
中的設備或模擬器名稱指定運行目的地不能正確解析。(52081230) 解決方案:根據平臺和 ID
而不是名稱指定目的地。
在設備上構建並運行 watchOS應用程序
可能會無限期地顯示系統轉輪。(51726238) 解決方法:從新啓動設備。
解決了一個問題,阻止運行一個手錶應用程序與線程殺菌劑創建啓用在舊版本的watchOS
。(49288795)
解決了在視網膜和非視網膜顯示器之間切換致使的半點幀差別問題。(20175879)
DriverKit
驅動程序構建正確。(52858797)儀器中的軌跡如今能夠在層次結構中造成。它們如今能夠表示任何工程類型,並使用定製的工具建立。(28615789)
如今,Instruments
容許一次從表中複製多行。(39326522)
工具容許建立範圍,以便在跟蹤文檔中更容易地導航。(49022012)
<os-signpost-point-schema>
在定製工具中可用來匹配來自os_signpost(_:dso:log:name:signpostID:)的點事件。(50586708)
watchOS應用程序
時,會啓動一個 iOS模擬器
。(49788679)所選軌跡在儀器的觸摸欄區域中呈現。(50186374)
在運行iOS、iPadOS、watchOS或tvOS
的設備上進行概要分析時,Instruments
對從其接收的os_log(:dso:log:::) 和 os_signpost(:dso:log:name:signpostID:)消息使用正確的類別。感興趣的點如今能夠正確地接收事件,而且自定義工具類別匹配的行爲也正確。(52193505)
界面生成器支持ios13
UIVisualEffectView 模糊和動態視覺效果。(48023286)
界面生成器支持ios13
UIActivityIndicatorView樣式。(48573772)
iOS家庭顯示器的顏色如今適應於淺色和深色畫布的外觀。(48610782)
接口生成器支持自定義 UIButton 符號配置。(51323174)
界面生成器支持新的佈局 TVCollectionViewFullScreenLayout 在蘋果電視上。(47598895)
UIViewController 實例如今默認爲自動模式表示模式。模態表示segue
能夠覆蓋此設置。(48129590)
界面生成器支持iOS
上的暗模式。(45314199)
Interface Builder
的設備欄可讓你在iOS
應用程序的亮暗界面之間切換。(45282451)
您能夠添加SwiftUI
宿主控制器,例如 UIHostingController,來將storyboard
控制器流鏈接到管理 SwiftUI
視圖層次結構的宿主控制器。您能夠在Interface Builder
中填充宿主控制器的內容,方法是提供一個經過編程設置控制器的rootView的自定義子類。(46039344)
你也可使用 Segue
動做設置 UIHostingController
或 NSHostingController 的根視圖。
對象庫如今匹配所選的系統範圍外觀。(50874168)
NSStackView 檢查器如今容許配置負間距。(49012055)
NSSwitch 在 macOS 10.15
上運行時可用。(47566686)
UITableView 中的單元格如今能夠經過畫布中的自動佈局約束視圖自調整大小。若要爲現有表視圖選擇行爲,請在大小檢查器中爲表視圖估計的項大小啓用「自動」,併爲單元格的高度啓用「自動」。(35735970)
NSView 和UIView 在尺寸檢查器中有一個佈局模式選項,能夠顯式地選擇「將自動調整蒙版轉換爲約束」。默認設置爲 「Automatic」
,這是現有的行爲。「自動」意味着當視圖受 storyboard或.xib
文件中的約束影響時,「將自動調整蒙版轉換爲約束」將關閉,若是不受約束則打開。(37352354)
提升了「添加缺失約束」自動佈局約束生成的可靠性。(43694622)
UIScrollView 的內容在畫布中是可滾動的,一旦它的子視圖被自動佈局約束徹底約束。(44727961)
UICollectionView 中的單元格如今能夠經過畫布中的自動佈局約束視圖自調整大小。若要爲現有集合視圖選擇行爲,請在大小檢查器中爲集合視圖的估計大小啓用「自動」,併爲單元格的大小啓用「自動」. 若是部署在 iOS 13
以前,你能夠激活自我分級集合視圖細胞經過調用 performBatchUpdates(_:completion:) viewDidLoad()。(45617083)
在字體彈出窗口檢查器中,家庭彈出窗口如今呈現菜單項做爲適用字體的預覽。(31484154)
如今能夠在文檔範圍內對錯位的幀執行更新幀,而不須要選擇視圖。(22076710)
UIScrollView
支持內容和框架佈局指南,能夠在Size檢查器中啓用它們,以便對可滾動內容進行更多控制。(29711618)
界面建設者支持新的蘋果電視標籤欄風格。(47598643)
新的 WKInterfaceTextField 接口元素可用於watchOS
。(45754186)
canvas
支持爲 Mac Catalyst
應用程序定製界面。(37797710)
SF
符號在圖像檢查器屬性中可用。(47532055)
UIImageView 檢查器包括對配置符號的支持。(47797500)
使用帶有新的 @IBSegueAction
屬性註解的視圖控制器方法,可使用帶有任何所需值的自定義初始化器,在代碼中建立 segue
的目標視圖控制器。這使得在故事板中使用具備非可選初始化需求的視圖控制器成爲可能。在源視圖控制器上建立從 segue到@IBSegueAction
方法的鏈接。在支持 Segue
操做的新OS版本上,將調用該方法,它返回的值將是傳遞給 prepare(for:sender:) 的 Segue
對象的destinationViewController
。能夠在一個源視圖控制器上定義多個 @IBSegueAction
方法,這能夠減小在prepare(for:sender:)
中檢查 segue
標識符字符串的須要。(47091566)
IBSegueAction
方法最多接受三個參數:編碼器、發送器和segue
的標識符。須要第一個參數,若是須要,能夠從方法的簽名中省略其餘參數。必須將 NSCoder 傳遞到目標視圖控制器的初始化器,以確保它是用 storyboard
中配置的值定製的。該方法返回一個視圖控制器,該視圖控制器匹配故事板中定義的目標控制器類型,或nil
,以使用標準init(coder:)
方法初始化目標控制器。若是您知道不須要返回nil
,則返回類型能夠是非可選的。
在Swift中,添加@IBSegueAction
屬性:
@IBSegueAction
func makeDogController(coder: NSCoder, sender: Any?, segueIdentifier: String?) -> ViewController? {
PetController(
coder: coder,
petName: self.selectedPetName, type: .dog
)
}
複製代碼
在Objective-C中,在返回類型前添加IBSegueAction:
- (IBSegueAction ViewController *)makeDogController:(NSCoder *)coder
sender:(id)sender
segueIdentifier:(NSString *)segueIdentifier
{
return [PetController initWithCoder:coder
petName:self.selectedPetName
type:@"dog"];
}
複製代碼
當在設備欄中選擇 Mac設備
查看 iPad 故事板
時,項目添加的自定義字體不會呈現。(48528374)
若是一個字形有光明模式和黑暗模式表示,黑暗模式表示將不會出如今故事板中。(50354204)
在 Interface Builder
中配置的 UIKit菜單
在macOS
上運行時可用,但在iOS上不可用。(51077651)
蘋果電視故事板中的 ARView 對象會致使界面生成器渲染崩潰。(50971800)
iOS狀態欄
不會顯示在界面構建器畫布中。(48639919)
包含用 Xcode 11
建立的菜單命令的視圖控制器場景會致使應用程序在iOS 12上運行時崩潰。(50871098)
在Interface Builder
中,將對齊設置爲「center」或「right」的UILabel , UITextField , UITextView 實例在爲macOS設計或運行時對齊錯誤。(50062524) 解決方法:在 awakeFromNib() 中從新應用所需的對齊。
在 Xcode 11 beta版
以前使用 Xcode版本
建立的項目在 Xcode 11 beta版
中打開時保留默認的自定義顏色。(50828300)
使用 Xcode 11
建立的 iOS或tvOS模板
項目中的故事板和 .xib
文件如今能夠在之前的 Xcode版本
中打開。(51230799)
使用 Xcode 11
建立的包含第四系填充顏色、第二系填充顏色、第三系填充顏色或系統填充顏色的故事板和 .xib文件
能夠在較舊的 Xcode版本
上打開,而不會致使崩潰。(51233884,51236844)
修正了集合視圖單元格自調整大小的佈局問題,這些問題來自於故事板和 .xib文件
,當編譯和部署到 iOS 12.4
及之後版本時(49537998)
解決了在查看 Mac Catalyst
應用程序的 storyboard
時,阻止界面構建器設備欄中的亮或暗界面樣式組生效的問題。(50929581)
Xcode
在打開 .xib
文件或帶有自定義視圖的故事板文件時不會崩潰,若是該項目包含Swift
包,該視圖被標記爲IBDesignable
。(50551974)
拖出一個新的 iOS
主菜單再也不會致使崩潰,若是你在畫布上拖動一個現有的菜單。(51237295)
解決了與打開故事板和 .xib文件
相關的性能退化問題。(51282755)
UIDatePicker 的檢查器如今只顯示適用於所選模式的屬性。(26726319)
用於添加 iOS設備
的預覽編輯器菜單如今與當前畫布方向匹配。(48818470)
預覽編輯器項如今保存配置的區域設置或僞區域設置。(48303753)
在接口生成器中配置爲 Count Down的UIDatePicker
對象如今在運行時使用指定的持續時間。(23426425)
在不使用自動佈局的文檔中也能夠看到Embed In bar
按鈕。(46855203)
NSControl 的子類如今在庫和文檔大綱中有惟一的圖標。(24231920)
修正了從庫中拖動子視圖控制器時背景顏色不正確的問題。(50388578)
庫中的全部 UI控件
都正確切換到暗模式。(49830961)
Swift
代碼,啓用位碼構建設置設置爲 Yes
,在使用存檔操做構建時正確連接。(52804818)LLDB
的 Python腳本
如今基於 Python 3
。若是您使用的 Python擴展
與 python3不兼容
,它們就會崩潰。爲了幫助轉換,您能夠在 python2
模式下運行,方法是設置一個默認值:defaults write com.apple.dt.lldb DefaultPythonVersion 2
複製代碼
Python 2
支持將在將來被移除。(47806994)
Swift
Decimal 值在 LLDB
中有一個數據格式化程序,使它們以可讀的方式顯示。(38983073)
LLDB
如今支持檢查經過支持庫演化而編譯的 Swift
類型。(48018240)
在Swift代碼中從新聲明 self
能夠與 LLDB
正常工做。(39611934)
當 PATH
中的 python二進制
文件不是系統二進制文件時,Swift REPL和LLDB
的
python
腳本能夠正常工做。(40961425)
解決了在調試 XCTest 測試時阻止 LLDB
訪問變量的多個問題。(41471338)
您如今能夠在資產目錄中本地化資產。在屬性檢查器中啓用本地化。(12948139)
設置包如今包含在 Xcode
本地化目錄中。(12495197)
genstring
的手冊頁提供了更詳細的行爲文檔。(19709369)
genstrings
工具獲得了加強,並與 extractLocStrings
工具合併。之前的版本已被棄用,已重命名爲 ogenstring
,如今必須使用 xcrun
調用。應該將調用 xcrun extractlocstring
的任何腳本更改成使用 genstring
,可是目前提供了一個兼容符號連接來調用 genstring
。(19709395)
genstrings
工具如今接受一個 -encoding
參數,該參數容許指定輸入文件的文件編碼。(48224455)
更新版本的 genstring
改進了錯誤報告,而且能夠在之前默認接受的場景中報告錯誤。例如,若是 MyApp
目錄包含子目錄,genstrings MyApp/*
將失敗,由於 genstrings
文件參數必須是源文件。(48304658)
genstrings
工具如今可使用任意數量的 -s
參數來指定與 NSLocalizedString 相似的附加宏,或者用於提取字符串的函數。例如,genstrings -s MyErrorSring -s MyUIString myfile.swift
將 MyErrorString
和 MyUIString
都視爲等同於NSLocalizedString
。(48734596)
請注意: 使用-s參數並不會禁止對
NSLocalizedString
或CFCopyLocalizedString
的支持。
本地化命令和 genstrings
工具的導出如今支持多行 Swift
和 Objective-C
字符串,而且在識別 NSLocalizedString
參數時放寬了空格要求。(50516442)
本地化命令的導出性能獲得了很大的改進。(40548416)
本地化命令和 genstrings
工具的導出再也不在轉義的高 Unicode
代碼點 (好比\U0001F603)
上崩潰。(18898240)
導入包含內嵌換行的本地化字符串如今會生成帶轉義 \n序列
的字符串文件。(44649979)
Xcode
本地化導出生成的 XLIFF文件
如今將 xml:space="preserve"
添加到 <trans-unit />
元素中,以確保保留空白。(44928807)
Mac Catalyst
的 color asset
變量不會在運行時傳遞。(51113192)
Mac Catalyst
的 NSDataAsset
變量在運行時返回 nil
。(50022757)
在 Xcode 11 beta
版中不支持 SwiftUI live
視圖和操場中的內聯結果。(42226387)
工做區中的操場不能從 Swift
包導入目標。(47668990)
UIKit
中視圖的快速查看和內聯結果預覽能夠顯示爲空白矩形。(50787870)
操場的前幾行再也不被卡在窗戶下面。(47529397)
修正了在 macOS 10.15
上運行遊樂場時,因爲網速慢或不可靠而致使的延遲。(48995467)
若是代碼引用主線程之外的視圖,遊樂場將再也不崩潰。(46579594)
Xcode
可使用 find
導航器在工做區或項目中找到資產。資產目錄編輯器還支持查找和替換,您可使用 replace
重命名資產。(14279237)由先前發佈的 Reality Composer
或 Xcode beta
版本建立的現實文件再也不受支持。(53180175) 解決方案:使用最新版本的 Reality Composer
或 Xcode
從新導出現實文件。
從 macOS
上的 Reality Composer
的內容庫中添加的對象與 iOS和iPadOS
上的Reality Composer
的 build 1A68
不兼容。
若是在接口生成器中沒有指定它的模塊,則在運行時加載故事板時不會找到 RealityKit ARView 類。在 Xcode
控制檯中顯示如下錯誤消息:「Interface Builder文件中的未知類ARView」。」(50840767) 解決方案:ARView
是一個Swift
視圖類,須要在接口構建器檢查器中指定它的類名 (ARView)
和模塊 (RealityKit)
。
若是在 Xcode
項目中沒有使用 RealityKit
,則在運行時加載 storyboard
時不會找到 RealityKit
的 ARView
類。在Xcode控制檯顯示如下錯誤消息:「 Interface Builder
文件中的未知類 _TtC10RealityKit6ARView
。」(50900969) 解決方案:若是導入 RealityKit
並使用 ARView
類型定義 @IBOutlet
,但在項目中不要使用 RealityKit
符號,則會出現此問題。要確保 RealityKit
在運行時使用此配置加載,請手動將 RealityKit
添加到目標的 Link二進制文件
和庫構建階段。
改進了對導入的 USDZ
文件的支持。(49630946)
改進了對操做對象的支持。(50036512)
來自其餘場景的通知觸發器和通知操做將再也不出如今沒有建立它們的場景中。(51008577)
由 Xcode
從一個 Reality Composer
項目自動生成的 . Reality
文件包含項目中的全部場景。(51048599,51868814)
RealityKit
在iOS模擬器中可用。(48603396)
當編輯使用SSH
進行身份驗證的項目的bot
時,Xcode Server
可能會禁用一些特定於項目的設置。(51009722) 解決方案:在編輯bot時,要麼替換 repository
選項卡中的 repository
,要麼使用基於 http
的身份驗證和 Xcode
服務器集成。
當從任何集成的上下文菜單建立機器人時,Xcode Server
均可能致使崩潰。(51082255) 解決方法:從服務器的上下文菜單或 Xcode
中的產品菜單建立機器人。
由多個目標構建的源文件中出現的構建問題能夠在每次集成中標記爲已解決並從新引入。(46523551)
Xcode Server
如今支持Mac Catalyst應用。(50602873)
Swift包始終出如今 Xcode Server bot
配置存儲庫窗格中。(50058808)
解決了Xcode Server
沒法自動簽署使用iCloud
、應用程序組、Apple Pay
或錢包功能的項目的問題。(41008156,44704694)
Xcode 11 beta 4
支持新的maccatalyst
。包標識符前綴。所以,Mac Catalyst
應用程序使用的配置文件必須從新生成,以反映新的前綴。若是使用自動簽名,將自動生成一個新的配置配置文件。若是您正在使用手動簽名,請登陸到開發人員賬戶並從新生成 Mac Catalyst
應用程序使用的配置文件。(52535178)
若是您正在使用之前的 Xcode 11 beta版
,而且已經爲您的應用程序提供了配置文件,那麼它將繼續工做,直到您更新到 Xcode 11 beta 4
。若是您尚未爲您的應用程序提供配置文件,您須要更新到 Xcode 11 beta 4
,以便生成一個具備正確應用程序ID前綴的配置文件。
若是代碼包含對 bundle標識符
的引用,則須要更新這些引用。
簽名和功能設置如今合併在項目編輯器中的新簽名和功能選項卡中。新選項卡支持跨多個構建配置使用不一樣的應用程序功能。新的功能庫使搜索可用功能成爲可能。(35254597)
Xcode 11
支持新的 Apple
開發和 Apple
分發證書類型。這些證書支持在任何蘋果平臺上構建、運行和分發應用程序。現有的iOS和macOS開發和分發證書將繼續工做,可是,在 Xcode 11
中建立的新證書將使用新類型。之前版本的 Xcode
不支持這些證書。(45527608)
若是你的iPad應用程序使用了私有權限,那麼 Mac Catalyst
應用程序可能沒法使用這些權限。 解決方案:爲 Mac Catalyst
應用程序生成一個新的受權文件,並按照如下步驟排除不可用的受權:
File > Duplicate
。Mac Catalyst
受權文件一個惟一的名稱並保存它。3.重新的 Mac Catalyst
權限文件中刪除任何不可用的私有權限。
Mac Catalyst
應用程序的構建設置,並找到代碼簽名權限構建設置。plus(+)
按鈕添加條件設置。macOS
,而後編輯條件設置的值,以引用新的 Mac Catalyst
受權文件的名稱。在建立開發證書時,自動簽名可能會失敗,並出現「出於安全緣由禁止此請求」的錯誤。(50964225) 解決方法:您的賬戶可能已經達到了證書限制。在Safari中查看您的 Apple Developer
賬戶,並撤銷您沒有使用的任何開發證書,而後在 Xcode
中再次嘗試。
存檔操做不會對Swift包中的命令行可執行產品進行代碼簽名。(48717735) 解決方法:在發佈存檔的可執行文件以前,使用 codesign
工具手動簽署它們。
使用 bot
編輯器的 sign
選項卡手動安裝的 Mac
配置文件將使用錯誤的文件擴展名安裝,這會致使集成失敗。(47636041) 解決方法:登陸到bot用戶的賬戶,並在 ~/Library/MobileDevice/Provisioning profiles
目錄中重命名受影響的概要文件。
修正了一個致使應用內購買內容包沒法構建的代碼簽名問題。(50736776)
解決了 Xcode
在爲 iOS Developer University
程序的成員建立新的簽名證書時拋出錯誤的問題。(50640287)
解決了 Xcode
錯誤報告的一個問題:當上傳到 App Store
時,「團隊沒有iTunes
鏈接訪問」。(39292849)
模擬器能夠根據當前電源自動選擇 macOS GPU
。當你的 Mac
鏈接到 AC電源
時,使用的是 分立GPU
。當你的Mac使用電池供電時,使用的是集成GPU。您能夠經過導航到 File > GPU
選擇在模擬器中更改策略。(53032365)
simctl
如今能夠覆蓋 iOS設備
的狀態欄值。例如,要設置時間和電池,請使用:
xcrun simctl status_bar <device> override --time "9:41" --batteryState charged --batteryLevel 100
複製代碼
有關所有選項,請參見xcrun simctl help status_bar。(51697821)
當運行在 macOS 10.15
上時,Metal
能夠在 iOS 13和tvOS 13模擬器
中使用。Metal
代碼在主機 Mac GPU
上執行,比模擬的 OpenGL代碼
要快得多。SceneKit api, CoreAnimation
和 其餘系統框架抽象gpu
之間的許多差別,減小須要特定於設備的代碼。當運行在早期版本的 macOS
上或在沒有Metal
的環境中,模擬器將繼續使用呈現的 OpenGL
軟件。若是你的 Mac
有多個 GPU
,使用模擬器中的文件菜單來選擇使用哪一個 GPU
。若是正在使用的 GPU
變得不可用,任何使用它的模擬器都會自動關閉。(18430676)
默認狀況下,Xcode
再也不建立全部可用的 iOS模擬器設備
。而是建立一組最經常使用的設備。要建立其餘設備(或一個設備的多個實例),請打開設備窗口,選擇模擬器,單擊+按鈕,輸入一個名稱,並選擇相關的設備類型和OS版本。(49428617)
CAMetalLayer
能夠在 iOS 13和tvOS 13模擬器
中使用。(45101325)
iOS 1三、watchOS 6和tvOS 13模擬器
如今都有一個 dyld共享緩存
。這改進了模擬器的啓動時間,減小了模擬器進程使用的打開文件句柄的數量。若是您報告了一個您認爲與共享緩存相關的問題,請包括一個 simctl診斷
和使用 DYLD_PRINT_LIBRARIES=1
啓動程序的輸出。(13632739)
simctl
如今接受運行時名稱的簡短別名。這意味着你能夠用像 simctl create 'iPhone X' iOS13
這樣的命令建立一個新的iPhone X模擬器。(41089607)
對於 headless
和 continuous integration
場景,您能夠配置 CoreSimulator
,經過設置默認的 write com.apple
來跳過虛擬幀緩衝區中的合成操做。CoreSimulator FramebufferServerRendererPolicy to none
。在這種模式下,沒法查看模擬器,simctl io
也沒法截屏或錄製視頻。(48264341)
沒有 CFBundleVersion
的包是無效的,不能正確地安裝在設備或模擬器上。 CoreSimulator
如今能夠在流程的早期檢查和拒絕這些包,並提供更清晰的錯誤消息。(49892531)
模擬器停靠圖標如今包括一個菜單,以快速啓動模擬器。(43067512)
模擬器的文件菜單如今包括一個 GPU
選擇菜單,以控制哪一個 GPU
是使用金屬支持模擬器和合成模擬器的虛擬幀緩衝區。若是在選中可用項時使用外部 GPU
,則在外部GPU鏈接後啓動的任何模擬器都使用外部 GPU
。若是外部 GPU
斷開鏈接,任何使用它的模擬器都會自動關閉。對這些設置的更改僅在模擬器啓動時生效。當這個設置被改變時,模擬器已經啓動,繼續使用以前選擇的 GPU
,直到它們從新啓動。(46134036)
遊戲控制器輸入在iOS模擬器中可用。(50082777)
GPU
在一個系統匹配選擇的GPU策略。只使用MTLCopyAllDevices()
返回的第一個匹配的GPU。(50608554) 解決方案:經過將模擬器窗口定位在與模擬器使用的 GPU
直接鏈接的顯示器上,您可能會看到更高的性能,這避免了跨 GPU複製
。請注意:與任何利用
GPU
的應用程序同樣,外部鏈接顯示的性能行爲也會隨着工做負載的不一樣而變化。
經過 xcrun simctl io <UDID> recordVideo
對 iOS 1三、tvOS 13和watchOS 6
模擬器進行視頻錄製,將返回一個錯誤而不是錄製視頻。(50625716)
watchOS模擬器
不支持冷啓動上的斷點。(51148192) 解決方法:在啓動正在調試的應用程序以前,徹底啓動模擬器。
自動紙板同步功能如今正確的全部模擬器運行 iOS 11.1
和更新。(53231481) 在模擬器中獲取粘貼板後當即調用 Send Pasteboard
將再也不致使設備不可用。(52866417)
修正了用 simctl
覆蓋細胞欄的能力。(51698044)
模擬器中的旋轉設備自動選項與 iOS 13模擬器兼容
。(51147050)
當模擬器不是 macOS Catalina 10.15
上的前臺應用程序時,模擬器將遊戲控制器事件交付給模擬設備。(51759699)
修正了一個致使模擬器中止向屏幕顯示幀更新的問題。(51993678)
模擬器正確地顯示了註冊時的 Touch ID > Enrolled
的複選標記。(50553667)
主機和模擬設備之間的紙板自動同步的行爲是正確的。(46686100)
Safari
對模擬器的共享行爲正確。(49331693,49416352)
解決了 IOSurface實例
在 macOS 10.14.5及更早版本模擬器
進程中的泄漏問題。(50880827)
iCloud同步
能夠在iOS模擬器中使用。(50924245)
當TVOut被配置爲「斷開鏈接」時,iOS 13模擬器
沒有鏈接模擬顯示。(50829453)
iOS模擬器
的顏色匹配金屬的內容,以顯示的顏色空間。(50625671)
解決了一個使用 Metal
的核心圖像着色器沒法在ios13模擬器上運行的問題,並禁用了錯誤的 「Metal DAG編譯器」
。」(51521248)
遊戲控制器與 iPad模擬器
能夠正常工做。(51034639)
解決了在 iOS 13以前運行iOS版本的模擬器
設備沒法正確呈現顯示的問題。(50963987)
IOSurface
如今能夠在 ios1三、watchOS 6和tvOS 13模擬器
中運行。(11051639)
模擬器中播放音頻的應用程序也再也不自動打開麥克風輸入。(32406954)
將刪除 simctl
列表 JSON
輸出中之前不推薦的可用性字段。使用 isAvailable Boolean
字段肯定可用性。(45142676)
ATSC
紋理格式支持透明地解壓他們在 CPU
上,而後再上傳到 macOS GPU
。(51347811)
如今您能夠從一個分支到另外一個分支進行更改。(18285039)
克隆新存儲庫時,如今能夠從可用分支列表中選擇要簽出的分支。(41122122)
使用新的源代碼控制文件檢查器,您能夠瀏覽當前分支文件的完整歷史記錄。日誌檢查器適用於全部文件類型,包括接口構建器文檔。(45109443)
如今,您能夠從源代碼控制導航器中隱藏更改和管理隱藏。此外,Xcode還提供自動保存和恢復源代碼控制操做的更改,好比從存儲庫中提取更改。(8797804)
源代碼控制做者如今能夠在每一個編輯器的基礎上使用。(45108927)
當在已啓用rebase的分支上執行 Pull in Xcode
時,工做表不會自動關閉。(50377240)
若是文件已重命名,則從源代碼控制日誌檢查器中查看文件修訂的更改可能會失敗。(49673170)
對於位桶雲或位桶服務器託管的賬戶,不支持在 Add Package assistant
中過濾包。(47290085)
GitLab或GitLab
自管理託管賬戶不支持在 Add Package assistant
中過濾包。(47290125)
當使用xcodebuild時,解析包可能沒法驗證 SSH指紋
,除非指紋已經在~/.ssh / known_hosts
文件中。(50686014) 解決方案:在使用 xcodebuild
以前,經過 SSH
到主機並從命令行驗證指紋,或者手動將主機指紋添加到 ~/.ssh / known_hosts
文件中。
改進了在項目導航器中選擇 Package.swift
文件時顯示源代碼控制信息的功能。(50696823)
若是做者信息還沒有在 Preferences > Source Control
控制中爲Git配置,則使用rebase進行提取將再也不失敗。(48680076)
解決了託管賬戶提供者(如GitHub 和 BitBucket
)在添加賬戶表中不可用,而且之前添加的賬戶將被禁用的問題。(47645098)
解決 Xcode
中的源代碼控制操做出現「沒法與助手應用程序通訊」對話框的問題。(47227781)
修復了我的、組織和星型存儲庫加載時間較長的性能問題。(48620126)
解決了添加GitHub
賬戶後,來自 GitHub
的用戶頭像並不老是加載的問題。(48698029)
修正了代碼評審編輯器中某些源編輯器菜單選項不可用的錯誤。(48774008)
語義突出顯示、代碼完成、實時問題、符號搜索和跳轉到定義如今都支持 Metal
着色語言。(45144204)
經過單擊源代碼控制更改欄並選擇顯示或隱藏更改,介紹了在源代碼編輯器中查看內聯代碼差別的功能。(49073551)
增長新的高對比度(暗)主題和高對比度(光)主題。還爲標記、類型聲明和其餘聲明添加了新設置。(50036007)
爲 Swift文件
中的聲明添加了專用的語法着色,能夠在類型聲明和其餘聲明下的首選項>字體和顏色中自定義。 宣言着色 C-family
語言不支持。(10342935)
Xcode
的源代碼編輯器如今支持拼寫檢查。(32062963)
Xcode 11
的源代碼編輯器引入了該文件的一個迷你映射。這個迷你地圖包括Mark:的可讀文本,高亮顯示的帶有錯誤和警告的行,源代碼控制更改,斷點,以及高亮顯示的 Find results
。迷你地圖在默認狀況下是啓用的,而且能夠在每一個編輯器中關閉。(35939517)
在文檔註釋和遊樂場標記中爲標記添加語法高亮顯示。您能夠在文檔標記下的首選項>字體和顏色中自定義散文字體,並在首選項>文本編輯>顯示中自定義分隔符外觀。(42941263)
Toggle
註釋支持多個遊標。(44319433)
拖放文本時,行與行之間會留出空間,以便更容易地看到文本將被拖放到何處。拖拽完整行時,Xcode
只容許在其餘行之間拖放。(44735912)
編輯器容許分層代碼摺疊。(47502128)
代碼摺疊支持方括號和圓括號。(50460404)
// MARK: comments和#pragma MARK
指令如今在編輯器中畫一條分隔線。顯示標記分隔符的首選項位於首選項>文本編輯>顯示>顯示標記分隔符。(7299224)
NSProgressIndicator 對象如今保存構建和運行時在檢查器中配置的當前值。(43257511)
c++操做符重載
顯示在跳轉欄中。(50841460)
解決了Xcode在運行時使用鍵盤快捷鍵錯誤打開助理編輯器的問題。(37995114)
爲 // MARK: comments和#pragma
標記指令添加了專用的語法着色,您能夠在首選項>字體和顏色>標記中定製它們。(22114159)
您能夠命令單擊Swift操做符來使用 Quick Help
並跳轉到 Definition
。(32695862)
解決了在Objective-C中編輯未關閉塊時可能發生的問題。(48201424)
解決了代碼完成將廢棄符號排序在非廢棄符號以前的問題。(38422586)
解決了刪除文本時代碼完成行出現空的問題。(48621410)
解決了在使用 throw
或 noexcept
子句時沒有正確解析 c++函數
的問題。(37682611)
在輸入時,可訪問性縮放焦點如今跟隨源編輯器中的插入點。(32775118)
當在源編輯器中逐行移動時,VoiceOver
不會重複上一行。(34334763)
VoiceOver
在源編輯器中有用於方法、錯誤、警告、斷點和標記的轉子,這使得搜索和移動到與錯誤或其餘轉子項對應的代碼行很是容易。(34493080)
VoiceOver
文本屬性如今包括源編輯器中一行代碼的空格數、製表符數、縮進級別和行號。(34607795)
當讀入源編輯器時,VoiceOver
再也不圍繞佔位符標記說額外的字符,並說它們是佔位符。(44941610)
解決了 c++原始字符串
沒有正確突出顯示的問題。(10770485)
解決了 c++類聲明
在使用限定名、模板或多重繼承時沒法正確解析的問題。(11286215)
解決了在跳轉欄中沒有顯示嵌套在函數或方法中的本地類的問題。(13337638)
解決了 c++ 11
後置返回類型不能正確識別的問題。(13634062)
解決了 c++
類型枚舉沒有正確解析的問題。(13693443)
改進了使用可用性宏和屬性的聲明的解析。(14569168)
解決了不識別帶單引號的 c++
數字文字的問題。(18121031)
解決告終構體成員函數沒有正確解析的問題。(27946356)
解決了在跳轉欄中沒有正確顯示枚舉聲明的問題。(32518576)
改進了 JavaScript
中類和函數的識別。(42537831)
解決了返回枚舉類型的函數沒有正確解析的問題。(46164630)
解決了無符號和長整數文字語法顏色不正確的問題。(47138177)
更新 JavaScript
語法高亮顯示,包括 ECMAScript 6
關鍵字。(47354463)
修正了雙擊 c++析構函數
名會致使
靜態分析器檢查 mach
服務器例程中是否違反了 MIG
調用約定。這些違反行爲可能會致使使用後免費的漏洞。(35380337)
靜態分析器檢查是否違反了 IOKit和libkern
引用計數規則。(46357478)
靜態分析器檢查是否違反了 DriverKit
引用計數規則。這些違規行爲可能致使泄漏和無償使用後的問題。(50349513)
結構和枚舉的 @frozen屬性
如今可用。(36597490)
結構的成員式初始化器如今爲包含默認表達式的變量提供默認值。(SE-0242, 47130624)
struct Dog {
var name = "Generic dog name"
var age = 0
// The synthesized memberwise initializer
init(name: String = "Generic dog name", age: Int = 0)
}
let sparky = Dog(name: "Sparky") // Dog(name: "Sparky", age: 0)
複製代碼
@autoclosure參數
。(SR-2688, 50560849)class Foo {
typealias FooClosure = () -> String
func fooFunction(closure: @autoclosure FooClosure) {}
}
複製代碼
class MyClass: NSObject {
@objc func clone() -> Self { return self }
}
複製代碼
鍵路徑表達式如今能夠包含對元組元素的引用。(50562288)
接受Any類型值的單參數函數再也不優先於其餘函數。(50562333)
如今已經徹底實現了元組類型之間的轉換。在此以前,下面將診斷一個錯誤。(SR-2672, 12340004)
let values: (Int, Int) = (10, 15)
let converted: (Int?, Any) = values
複製代碼
// Declare a type with a static subscript:
enum ProcessEnvironment {
static subscript(name: String) -> String? {
get { getenv(name) }
set { setenv(name, to: newValue) }
}
}
// Use it with any of these syntaxes:
ProcessEnvironment["PATH"]! += ":/usr/local/bin"
ProcessEnvironment["PATH"]! += ":/usr/local/bin"
someVarOfProcessEnvironmentDotType["PATH"]! += ":/usr/local/bin"
複製代碼
類型下標還能夠與動態成員查找一塊兒使用,以建立動態類型屬性。
// Declare a type with a static subscript:
@dynamicMemberLookup
enum ProcessEnvironment {
// …As above…
static subscript(dynamicMember name: String) -> String? {
get { self[name] }
set { self[name] = newValue }
}
}
// Now you can use property syntax with ProcessEnvironment:
ProcessEnvironment.PATH! += ":/usr/local/bin"
ProcessEnvironment.self.PATH! += ":/usr/local/bin"
someVarOfProcessEnvironmentDotType.PATH! += ":/usr/local/bin"
複製代碼
none
大小寫的枚舉進行比較,或將此類枚舉與 Optional
進行比較。如今沒有一個會發出警告。這樣的表達式會產生歧義,由於編譯器會選擇可選的。none
超過您本身的枚舉定義的 none
用例。(SR-2176, 26126801)enum Foo { case none }
// Assigned Optional.none instead of Foo.none.
let foo: Foo? = .none
// Comparing with Optional.none instead of Foo.none.
let isEqual = foo == .none
複製代碼
編譯器會提供一個警告,並提供一個修復程序來用 Optional替換.none
。沒有或 Foo
。沒有人能解決這種含糊不清的問題。
func makeACollection() -> some Collection {
return [1, 2, 3]
}
複製代碼
調用該函數的代碼可使用協議的接口,但不能看到底層類型。(SE-0244, 40538331)
enum Foo { case zero, one }
let foo: Foo? = .zero
switch foo {
case .zero: break
case .one: break
case .none: break
}
複製代碼
@dynamicMemberLookup
屬性如今支持鍵入鍵路徑實現。(SE-0252, 49069813)struct Point {
var x, y: Int
}
@dynamicMemberLookup
struct Box<T> {
var v: T
init(_ v: T) {
self.v = v
}
subscript<U>(dynamicMember member: KeyPath<T, U>) -> U {
get { return v[keyPath: member] }
}
}
var box = Box(Point(x: 0, y: 0))
_ = box.x
複製代碼
struct Box<Value> {
func transform1() -> Self { return self }
func transform2() -> Box<Value> { return self }
}
複製代碼
在類中,Self
和前面同樣是 Self
值的動態類型。聲明類型中對Self的現有限制仍然適用;也就是說,Self
只能做爲方法的返回類型出現。然而,Self如今能夠在方法體中無限制地使用。(SE-0068, 17892696)
Array 和 ContiguousArray 如今都有 init(unsafeUninitializedCapacity:initializingWith:) 初始化器,它提供對數組未初始化存儲的訪問。(21880692)
實現了更完全的檢查,以肯定轉義閉包的限制,這些閉包捕獲的 in-out
參數或 noescape
類型的值。雖然大多數代碼不受影響,但在某些狀況下,Swift 5.0
編譯器接受的代碼違反了這些限制。(SR-8546, SR-9043, 43355341)
Swift 5.0
編譯器錯誤接受無效代碼的一個例子是 @escaping
閉包,它調用一個本地函數,該函數從外部範圍引用 in-out
參數:
struct BadCaptureExample {
var escapingClosure: () -> ()
mutating func takesInOut(_ x: inout Int) {
func localFunction() {
x += 1
}
escapingClosure = { localFunction() }
}
}
複製代碼
localFunction()
捕獲x是無效的來正確診斷上面的代碼,由於 localFunction()
是從 @ escape
閉包引用的。func takesNoEscape(_ fn: () -> ()) {
func localFunction() {
fn()
}
{ localFunction() }()
}
複製代碼
再也不容許重複元組元素標籤,由於這會致使不正確的行爲。(SR-8974, 45218256) 如下內容如今被診斷爲錯誤:
let dupLabels: (foo: Int, foo: Int) = (foo: 1, foo: 2)
enum Foo {
case bar(x: Int, x: Int)
}
let f: Foo = .bar(x: 0, x: 1)
複製代碼
只要內部標籤不一樣,在聲明函數和下標時仍然可使用重複標籤。例如:
func foo(bar x: Int, bar y: Int) {}
subscript(a x: Int, a y: Int) -> Int {}
複製代碼
帶有不透明返回類型的聲明須要在iOS 1三、macOS 10.1五、watchOS 6或tvOS 13中使用Swift 5.1運行時,由Swift編譯器強制執行。(50731151)
在macOS 10.9以前廢棄的API在編譯時只須要應用程序擴展安全的API構建設置就會正確地顯示爲不可用。(51417764)
從終端啓動時,Swift REPL工做正常。(51374106)
若是類型使用不透明的返回類型來知足協議的關聯類型要求,而且關聯類型在另外一個泛型聲明中按名稱引用,則編譯器再也不崩潰。(50509030)
靜態庫如今老是在連接期間所有強制加載,以修復與請求失敗相關的運行時錯誤。(47598583)
弱的和無主的存儲特性再也不抑制自動合成的 Equatable 或者 Hashable。(sr - 9827, 50566123)
若是崩潰日誌中的符號沒有正確解調,運行quick -demangle命令並傳入崩潰日誌的內容。(34920390)
在沒有爲 OTHER_SWIFT_FLAGS
設置 -DDEBUG
設置的項目中定義的預覽提供程序,若是在畫布中沒有顯示調試,則將其封裝在#中。這發生在Objective-C
應用中,Objective-C
從未指定 OTHER_SWIFT_FLAGS
。(51138834) 解決方法:從 PreviewProvider
聲明周圍刪除 #if DEBUG和#endif
。
使用 Xcode 11 beta 5
,預覽只在 macOS Catalina 10.15 beta 5
上可用,並且只有 Xcode 11 beta 5
支持在 macOS Catalina 10.15 beta 5
上預覽。(52059562)
軟件鍵盤不會出如今預覽中。(35615536)
使用與系統類型相同的名稱命名類型可能致使預覽失敗。(51531683) 解決方法:不要對您的類型使用與系統類型相同的名稱。
在運行設備預覽時進行的代碼更改可能會在應用程序從新啓動時短暫顯示主屏幕。(48208765)
在實時預覽中沒法縮放。(51183125) 解決方法:退出活動模式或使用畫布或編輯器菜單中的縮放控件。
iOS、tvOS和watchOS
的靜態預覽不支持 SceneKit、MapKit和Metal視圖
,在呈現更新時會出現延遲。(50965310)
若是現有視圖位於視圖生成器中條件語句的頂層,則致使容器插入現有視圖和容器中的新同級的拖放操做將不起做用。例如,不能在 Text 周圍刪除 HStack 或者 VStack。(50300406):
var body: some View {
VStack {
if true {
Text("Hello World")
}
}
}
複製代碼
解決方法:將現有視圖嵌入到容器中——不管是在畫布中仍是在源編輯器中——而後將新視圖放入容器中。
包中的預覽老是執行活動方案的完整構建。(51030302)
將 Text 修飾符拖放到畫布中已經具備 View 修飾符(例如 frame(width:height:alignment:) 的文本上,將致使編譯錯誤。(50712235) 解決方法:從新排序修飾符,使特定於文本的修飾符出如今任何視圖修飾符以前。
HStack 和 VStack檢查器不支持自定義佈局指南。(49710501) 解決方法:使用 source editor
做爲自定義佈局指南。
屬性檢查器不容許指定靈活的幀。(51310989)
第一次在畫布中進入實時預覽模式可能須要幾秒鐘。(46505269)
在文件之間切換時,預覽可能會失敗或更新不正確。(50841287) 解決方法:在活動文件的末尾添加新行,而後單擊出現的橫幅中的 Resume
。
屬性檢查器在畫布關閉後仍然可見,停留在最後選定的項上,而且不起做用。(50958316) 解決方法:從新打開畫布或切換到其餘文件。
預覽不適用於啓用了應用沙箱的 macOS應用程序
。(51088926)
對於符合 PreviewProvider 的私有和文件私有結構,預覽不會出如今畫布中。(47011316) 解決方法:從符合要求的類型中刪除私有或文件私有訪問控制。
第一次在運行目標選擇器中切換設備時,預覽可能須要幾秒鐘更新。(47562171)
在從 Scheme
彈出菜單切換使用運行目標的設備時,預覽可能會暫時顯示不正確的設備 chrome
。(49496647)
畫布不支持焦點。(50275735)
在畫布中沒法撤消。(49651153) 解決方法:將源編輯器放在焦點位置,並在那裏執行撤消操做。
解決問題
預覽檢查器使用系統字體呈現。(52473187)
修正了當你試圖在你的 Mac
電腦上顯示多個設備的預覽時可能發生的崩潰。
修正了檢查包含 SwiftUI
視圖的視圖層次結構時可能發生的崩潰。(52857304)
修正了啓用或禁用實時預覽時可能發生的崩潰。(52083572)
解決了 Apple Watch
預覽在黑色背景上顯示黑色文本的問題。(51676439)
預覽繼續工做後,更改文件名,而不須要切換到另外一個文件和切換回來。(51708183)
預覽尊重導入周圍的條件編譯塊。例如,您能夠有條件地導入由 #if canImport(UIKit)
保護的 UIKit
。(51545182)
應用於類型和方法的可用性屬性受到預覽的尊重。當部署目標不包括 SwiftUI
(即部署目標在 iOS 1三、macOS 10.1五、watchOS 6或tvOS 13以前
)時,您如今可使用 UIViewRepresentable 實例和 UIViewControllerRepresentable 實例來查看視圖和視圖控制器的預覽。爲此,將適當的可用性屬性添加到視圖可表示類型和 PreviewProvider 一致性中,如 @available(ios13.0, *)
。(51493428)
命名顏色在屬性檢查器中是可編輯的。(51287606)
使用 withAnimation(::) 來更改根視圖中的狀態,能夠在實時預覽中正確顯示。(51164838)
動畫在live預覽中保持在它們的上下文中,live預覽與設備上的預覽匹配。(50708417)
解決了在運行目的地選擇器中選擇與Apple Watch配對的設備時,watchOS
預覽沒法工做的問題。(50861269)
修正了在顏色檢查器中反覆選擇指定顏色時可能發生的崩潰。(51304163)
當運行在 Apple Watch Series 3
上時,使用SwiftUI構建的應用程序再也不表現得像運行在 Apple Watch Series 4
上同樣。(50678109)
Xcode 11 beta 5
中包含的 sdk
,使用 Path 結構可能會致使應用程序崩潰。所以,您可能沒法成功地遵循 Drawing Paths and Shapes 教程中的步驟。(53523206)沒有顯式的命令行選項來使用 xcodebuild
構建 Swift包
。(45575820) 解決方法:運行xcodebuild -workspace
。在包含 Package.swift
文件的目錄中。
獨立軟件包不支持預覽。(51072409)
Swift
包不支持在目標中添加資源文件——好比圖像、故事板或音頻。(SR-2866, 33389529)
Swift
包不支持處理本地化的字符串文件。(48190792)
在項目中移動本地包將把它轉換爲文件夾引用。(50320585)
鏈接到 app
及其測試目標的打包產品會產生重複的符號。(50348625) 解決方法:只在應用程序或測試目標中連接包產品。
爲Swift包自動生成的方案在包添加或刪除目標時不會自動更新。(50586754) 解決方案:從包目錄中的 swiftpm/xcode/xcshareddata/xcscheme
目錄中刪除該方案,而後從新打開包,自動生成一個新方案。
若是在方案中選擇的構建配置未命名爲 Debug或Release
,則使用調試條件設置的 Swift
包構建的目標。(50696202)
從工做區中刪除本地包引用將從工做區中的全部 Xcode
目標中刪除其包產品,即便對該本地包的其餘引用仍然保留在工做區中。(50706448) **解決方案*8:將包產品引用添加回相關目標。
不支持預覽 Swift
包中的代碼,這些代碼沒有被活動方案引用,也沒有被連接到應用程序目標,而且顯示錯誤消息。(50909384)
新建立的 Swift
包的測試目標沒法爲 watchOS
構建,由於 XCTest
在 watchOS
上不可用。(51054894) 解決方法:用條件編譯語句包圍 watchOS
測試目標中引用 XCTest
框架或其api的任何代碼。例如:
#if !os(watchOS)
// XCTest code
#endif
複製代碼
在沒有搜索結果時,在 Add package Dependency
工做表中搜索包存儲庫。(51223367)
不管在package . Swift
清單文件中聲明的目標的名稱與該目標的目錄名在大小寫上不一樣,代碼補全都適用於 Swift包目標
。(49648458)
在 Swift包的c族
目標中添加新文件不會建立擴展名爲 . Swift的文件
。(31395814)
使用 unsafeFlags
構建設置的Swift包不能做爲依賴項使用。(50354068)
當使用 Swift包
管理器構建 Swift包
測試時,XCTUnwrap API
是可用的。(51115369)
若是本地包覆蓋了項目中的遠程包,而且本地包具備沒法知足的包依賴關係,那麼 Xcode
將再也不崩潰。(51183216)
支持編寫與SwiftUI視圖交互的XCTest UI測試。(35224680)
測試計劃是一種管理哪些測試運行以及這些測試如何運行的新方法。方案能夠引用多個測試計劃,併爲自動化定義一個默認的測試計劃。一個新的測試計劃編輯器支持定義測試配置,它能夠從計劃自己繼承共享設置。在Xcode中運行測試如今能夠跨全部測試配置運行測試。更新源編輯器測試菱形以支持在單個配置中運行測試,並更新測試導航器以容許選擇活動測試計劃。更新測試報告以支持顯示測試計劃生成的結果。(16138582)
XCTest使用新的度量(度量:options:block:)方法和相關方法加強了性能測試功能。metrics參數須要符合XCTMetric協議的對象列表。您能夠實現本身的自定義度量,或者使用 XCTClockMetric , XCTOSSignpostMetric , XCTCPUMetric , XCTMemoryMetric , 和 XCTStorageMetric。(49430032) 下面顯示了一個示例性能測試測量的 CPU
和內存影響排序列表:
func testExample() {
// Measures the CPU and memory impact of sorting the input list.
measure(metrics: [XCTCPUMetric(), XCTMemoryMetric()]) {
sortedList = qsort(list: self.fiftyNumbersFrom0to100)
}
}
複製代碼
XCTUnwrap
,用於 Swift測試
。XCTUnwrap
斷言可選變量的值不是nil,若是斷言成功,則返回其值。這消除了將 XCTAssertNotNil(::file:line:) 與展開值或處理測試其他部分的條件連接相結合的須要。例如:func testFirstNameNotEmpty() throws {
let forenames: [String] = customer.forenames
let firstName = try XCTUnwrap(forenames.first)
XCTAssertFalse(firstName.isEmpty)
}
複製代碼
XCTUnwrap
是一個拋出斷言,最好在拋出測試方法中使用,如上例所示。(30667432)
xccov
如今還支持直接傳遞結果包。例如,要查看結果包中的覆蓋率報告,能夠調用 xccov
,以下所示: xccov視圖——report /path/to/result_bundle.xcresult
。(50500789)*結果包的格式在 Xcode 11
中更改。結果包是 Xcode 11
使用 xcresult
文件擴展名生成的資產,該擴展名包含有關構建、測試、代碼覆蓋率等信息。使用 Xcode 10
或更早版本生成的任何 xcresult
文件都不能被Xcode 11讀取。經過傳遞 -resultBundlePath ./Example
能夠生成一個結果包。將 xcresult
轉換爲xcodebuild
調用和示例。而後能夠在 Xcode
中打開 xcresult
。Xcode 還在派生數據中建立結果包。當前的結果包版本號是3,能夠經過傳遞
xcodebuild標誌-resultBundleVersion 3來指定。版本3是
Xcode 11中的缺省版本,可是仍然建議自動化顯式地傳遞該標誌,以便未來任何可能成爲缺省版本的版本都不會對現有工具形成問題。可使用
xcresulttool檢查結果包。可使用
xcrun xcresulttool get——format JSON——path ./Example導出結果包根對象的
JSON表示。能夠經過添加標記
——id REF. xcresulttool來導出
xcresult和任何由
JSON輸出中找到的引用標識的嵌套對象。
xcresulttool還使用xcrun xcresulttool formatDescription` 提供其格式的描述。(41633595)
若是一個測試在多個目標上運行,而且其中一些目標(而不是其餘目標)失敗,那麼測試報告將顯示一個摘要,描述測試失敗的目標,例如「在運行 iOS 12.0
的 iPad
目標上失敗」。(49164968)
當經過源編輯器測試菱形運行測試或測試類時,選擇單擊菱形將顯示一個彈出窗口,該彈出窗口容許在活動測試計劃中的特定配置下運行測試(若是測試計劃具備多個配置)。(46348663)
當查看在多個目標上運行的測試的測試報告時(例如 Xcode
服務器集成,或者 xcodebuild
調用使用多個目標說明符生成的結果包),如今能夠根據目標過濾顯示的結果。單擊範圍欄中的 devices
按鈕將顯示運行測試的目標列表,包括僅隱藏或顯示感興趣的目標的功能。此外,如今能夠經過範圍欄中的「混合」按鈕過濾到僅在一個目標上失敗但在另外一個目標上成功的測試。(48981032)
xcodebuild
生成的結果包如今能夠在Xcode中直接共享、雙擊和打開。(38620469)
介紹了對 Mac Catalyst
應用程序編寫基於 xctest
測試的支持。(41530313)
默認狀況下,爲新建立的測試計劃啓用了代碼覆蓋率。(48749597)
在 macOS
的 UI
測試中,鼠標移動(包括對 hover API
的調用以及對 click、scroll
和其餘 API
的調用)將在屏幕上逐步移動光標,就像用戶在實際交互中所作的那樣,而不是當即將光標移動到最終位置。這可能會給嚴重依賴鼠標懸停行爲的UI測試帶來問題。(49430331)
爲測試計劃修改 .xctestrun
文件格式,以包含關於如何在計劃中執行每一個測試配置的信息。當運行 xcodebuild build-for-testing
計劃使用測試計劃,生成 .xctestrun
文件使用 FormatVersion 2
和有一個修改後的屬性列表結構。.xctestrun
文件生成的計劃,不要使用測試計劃繼續使用 FormatVersion 1和xcodebuild test-without-building
接受要麼版本。(46346053)
測試計劃編輯器中的代碼覆蓋率設置不支持選擇用於收集代碼覆蓋率的單個目標。若是測試計劃是經過將一個計劃轉換爲使用測試計劃來建立的,而且該計劃在轉換時選擇了單獨的代碼覆蓋率目標,那麼這些目標將保留在最終的測試計劃中,可是不能在計劃中編輯。(50502861)
xcodebuild
加強了支持測試計劃的新選項。使用 new -showTestPlans
選項列出與方案關聯的全部測試計劃。使用新的 -testPlan <name>
選項指定與用於測試或構建測試的方案相關聯的測試計劃。若是沒有指定 -testPlan <name>
, xcodebuild
測試將使用方案的默認測試計劃。(46346197)
Xcode 11
引入了在 Xcode
本地化目錄中自動包含來自 XCTest
的屏幕截圖的選項。在測試計劃或 scheme
編輯器中啓用本地化截圖,而後在導出本地化時檢查「包含截圖」。(28656175)
XCTUnwrap API
只在主要測試包目標中可用,而在其餘庫或框架中不可用。(51117167) 解決方案:將任何使用XCTUnwrap的庫代碼移動到您的主測試包目標,或者在受影響的目標中手動修改如下構建設置:SYSTEM_FRAMEWORK_SEARCH_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/Library/Frameworks"
LIBRARY_SEARCH_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/usr/lib"
SWIFT_INCLUDE_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/usr/lib"
複製代碼
Address Sanitizer
和保護 Malloc
,或者Address Sanitizer
和 Thread Sanitizer
。(49739613) *解決方案 :不要將銷燬者和不兼容的內存診斷設置組合在一塊兒配置測試計劃。若是測試計劃的共享設置在測試配置中繼承了不兼容的設置,則手動覆蓋該設置,以禁用受影響的測試配置。Xcode
中的結構化構建日誌,以及獨立的結果包,再次顯示了每一個步驟的持續時間。(48126238)
修正了一個阻止UI測試運行器發出任意網絡請求的問題。(52856418)
修正了一個問題,該問題阻止啓動UI測試目標,該目標的名稱包含一個連字符,後面直接跟一個數字。(51857798)
編輯引用與包含活動方案的項目不一樣的項目中的測試目標的測試計劃,將再也不致使這些測試目標被標記爲缺失。(50148373)
您能夠在包解析期間在包含 Swift包
的工做區中運行測試。(48719922)
在正確啓用代碼覆蓋率的狀況下運行測試,將在模擬器和 Mac
上生成 iOS應用程序
的覆蓋率報告。
修正了 Mac上iPad
應用程序 UI測試
的一個問題,當試圖與表格視圖單元內的元素交互時,可能會出現hit測試錯誤而失敗。(50745246)
一個方案的測試操做中的並行執行復選框如今對 Swift包
的測試目標啓用了。(47564543)
解決了啓動測試操做時檢查設備可用性時可能發生的崩潰。(51245770)
解決了在模擬器中沒法爲 Mac Catalyst
應用程序或 iOS應用程序
生成代碼覆蓋率報告的問題。(51241460)
XCUIElement 上的 exists 屬性如今在XCTest沒法檢查應用程序UI的狀況下(例如,因爲應用程序的主線程沒有響應)產生測試失敗,而不是在這些狀況下返回false。(37359653)
單元測試發現機制對於大型項目更有效。從新打開項目後,測試導航器的填充速度更快。(32567980)
tvOS 12.3或更早版本的TestFlight應用程序
分發到 Apple TV 4K
上,適用於部署目標在 tvOS 13以前的tvOS應用程序
。(53017497)這一篇 Xcode 11 Beta 5 翻譯 官方文檔
長夜漫漫,獨自一人翻譯。若有紕漏敬請原諒(同時還望指出,及時更改,以惠後人)
。內容更新角度是空前的,我相信正式版來臨必將震撼整個互聯網行業!經過如今 Xcode 11 出現以後的 SwiftUI + Combine 就知道!身處互聯這個利益的漩渦之中,咱們惟一能作的就是與時俱進就問此時此刻還有誰?45度仰望天空,該死!我這無處安放的魅力!