這一篇文章給大家介紹:Xcode 11 Beta 5齿风,雖然是
beta版本
榕吼,但是在不久的將來(lái)必將來(lái)臨继低,例如:SwiftUI + Combine
概述
Xcode 11
包括用于iOS 13
竹宋、macOS Catalina 10.15
劳澄、watchOS 6
和tvOS 13
的sdk
。Xcode 11
支持iOS 8及以上版本
蜈七、tvOS 9及以上版本
秒拔、watchOS 2及以上版本
的設(shè)備上調(diào)試。Xcode 11
要求Mac
運(yùn)行macOS Mojave 10.14.4或更高版本
飒硅。這是版本要求
通用
新特性
-
Xcode 11 beta
支持SwiftUI
注意:
SwiftUI
開(kāi)發(fā)工具只能在macOS Catalina 10.15 beta版
上運(yùn)行溯警。
現(xiàn)在,您可以獨(dú)立于系統(tǒng)外觀(guān)設(shè)置更改Xcode的外觀(guān)狡相。(41165587)
Xcode
支持使用xcodebuild
或xcrun altool
從Organizer window
或命令行上傳應(yīng)用程序梯轻。Xcode不再包含Application Loader
。(29008875)現(xiàn)在尽棕,當(dāng)啟動(dòng)嵌入在
Xcode
中的Instruments
喳挑、模擬器和其他開(kāi)發(fā)工具時(shí),macOS
上的LaunchServices
會(huì)考慮所選擇的Xcode
滔悉。例如伊诵,當(dāng)您在Finder
中雙擊一個(gè)Instruments trace
時(shí),將啟動(dòng)所選Xcode
的Instruments
版本回官。從命令行中更改Xcode
和Xcode -select
一起使用的是哪個(gè)Xcode
曹宴。(6757601)編輯器可以添加到任何窗口,而不需要助理編輯器歉提。編輯器是使用跳轉(zhuǎn)欄中的
“Add Editor”
按鈕或File > New > Editor command
添加的〉烟梗現(xiàn)在区转,每個(gè)編輯器都可以處于以下三種模式之一:“Editor Only”, “Editor and Assistant” 或 “Editor and Canvas”
。后兩種模式在可用時(shí)自動(dòng)顯示相關(guān)內(nèi)容版扩。當(dāng)使用多個(gè)編輯器時(shí)废离,View > Editor > Focus command
可用于臨時(shí)展開(kāi)活動(dòng)編輯器,以填充整個(gè)窗口礁芦,隱藏其他編輯器蜻韭。對(duì)于源代碼控制支持,工具欄中的Code Review
按鈕將替換Comparison Editor
柿扣。“Show Authors”
命令現(xiàn)在可以從Source Editor
的編輯器菜單中獲得肖方。SCM日志
現(xiàn)在位于檢查器區(qū)域。(43806898)
已知問(wèn)題
- Xcode 11不支持在
Mac Catalyst
應(yīng)用程序中使用SwiftUI
未状。
已解決的問(wèn)題
所需的軟件包安裝程序不再不必要地出現(xiàn)在
macOS 10.15
上俯画。(51080815)Foundation繼承 Combine framework 現(xiàn)在可以了!可以使用以下
Foundation
和Grand Central Dispatch
與Combine
進(jìn)行集成:keyvalueobserver
娩践、NotificationCenter
活翩、RunLoop
烹骨、OperationQueue
翻伺、Timer
、URLSession
沮焕、DispatchQueue
吨岭、JSONEncoder
、JSONDecoder
峦树、PropertyListEncoder
辣辫、PropertyListDecoder
和@Published屬性包裝器。(51241500)當(dāng)使用帶有暗黑系統(tǒng)外觀(guān)的淺色主題時(shí)魁巩,問(wèn)題文本不再是淺色的急灭。(48230278)
Apple Clang Compiler
新特性
Clang 現(xiàn)在提供了一種機(jī)制來(lái)控制退出時(shí)析構(gòu)函數(shù)注冊(cè)。您可以使用
-fno-c++-static-destructors
標(biāo)志全局禁用這些函數(shù)谷遂,或者應(yīng)用屬性[[clang::no_destroy]]
來(lái)禁用特定變量的析構(gòu)函數(shù)葬馋。還添加了屬性[[clang:::always_destroy]]
,以便在使用-fno-c++-static-destructors
時(shí)啟用特定變量的析構(gòu)函數(shù)肾扰。(21734598)作為擴(kuò)展畴嘶,所有語(yǔ)言模式現(xiàn)在都支持具有固定底層類(lèi)型的c++ 11枚舉。(43831380)
當(dāng)使用在活躍 Standard version 中被棄用的標(biāo)準(zhǔn)庫(kù)設(shè)施時(shí)集晚,將發(fā)出棄用警告窗悯。(46881474)
堆棧檢查在所有平臺(tái)上都是默認(rèn)打開(kāi)的,以防止內(nèi)存損壞偷拔。(25859140)
默認(rèn)情況下蒋院,機(jī)器碼
outliner
在-Oz
下是打開(kāi)的亏钩。它通過(guò)跨函數(shù)標(biāo)識(shí)相同的代碼序列來(lái)減小代碼大小。這些序列被封裝在一個(gè)編譯器生成(“outlined”)
的函數(shù)中悦污。每個(gè)原始代碼序列都替換為對(duì)所述函數(shù)的調(diào)用赘方。(46385499)為了提高性能和安全性贩绕,靜態(tài)鏈接器(ld)現(xiàn)在將標(biāo)記為常量的全局變量移動(dòng)到一個(gè)新的段中:
__DATA_CONST
。這些全局變量可能由編譯器生成的指針組成,動(dòng)態(tài)鏈接器(dynamic linker, dyld)
需要在加載期間修復(fù)這些指針褥琐,但是其他方面是常量,比如vtables
和顯式聲明的常量指針嫡秕。一旦dyld
完成加載映像丸凭,它就會(huì)使__DATA_CONST只讀。這種更改不會(huì)影響行為良好的代碼茵瀑,但是可能會(huì)破壞依賴(lài)于未定義行為的代碼间驮,比如使用類(lèi)型雙關(guān)來(lái)編寫(xiě)聲明為
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;
- Clang 現(xiàn)在支持用于 iOS 13马昨、macOS 10.15竞帽、watchOS 6 和 tvOS 13 的c++ 17 <filesystem>庫(kù)。(50988273)
已知問(wèn)題
- 當(dāng)使用手動(dòng)保留釋放時(shí)鸿捧,可能不會(huì)捕捉到以下方法或它們傳遞調(diào)用的任何函數(shù)或方法拋出的異常:
release屹篓、autorelease、retain匙奴、alloc或allocWithZone
堆巧。(50253394)
已解決的問(wèn)題
當(dāng) Xcode 將
if (@available(…))
鏈接到運(yùn)行在 iOS 13、macOS 10.15泼菌、watchOS 6或tvOS 13 上的應(yīng)用程序或框架中時(shí)谍肤,if (@available(…))
檢查可以正常工作。(51109405)刪除
<experimental/optional>
和<experimental/ variable >
標(biāo)頭哗伯。使用c++ 17
中的< optional >和< variant >
來(lái)替代荒揣。(50175894)
解決了優(yōu)化器循環(huán)不變代碼運(yùn)動(dòng)傳遞中的長(zhǎng)編譯時(shí)問(wèn)題。(39648918)
Asset Catalog
新特性
- 現(xiàn)在可以使用菜單或鍵盤(pán)快捷鍵剪切焊刹、復(fù)制系任、粘貼和復(fù)制資產(chǎn)。(27107912)
已知問(wèn)題
- Localized assets 中的本地化資產(chǎn)與用戶(hù)首選的語(yǔ)言和地區(qū)不匹配伴澄。(49565973)
已解決的問(wèn)題
如果您按下
Command-U
或在navigator
區(qū)域中選擇一個(gè) Localized assets赋除,Xcode將不再崩潰非凌。(52211868)修正了在使用 Interface Builder 的圖像檢查器時(shí)举农,如果資產(chǎn)目錄包含一個(gè)符號(hào)和位圖圖像資產(chǎn),并且它們具有相同的名稱(chēng)敞嗡,則可能發(fā)生崩潰的問(wèn)題颁糟。(51279661)
添加到資產(chǎn)目錄的新用戶(hù)定義圖像將顯示在圖像視圖圖像組合框中(51090225,51120715)
修正了導(dǎo)致 Mac Catalyst 的 NSDataAsset 在運(yùn)行時(shí)返回nil的問(wèn)題航背。(50022757)
解決了一個(gè)問(wèn)題,當(dāng)一個(gè)資產(chǎn)具有為iPad 和 Mac Catalyst指定的變量時(shí)棱貌,會(huì)導(dǎo)致 NSDataAsset 查找返回錯(cuò)誤的數(shù)據(jù)玖媚。(49990047,51278348,51288447)
Build System
新特性
如果測(cè)試是使用測(cè)試計(jì)劃運(yùn)行的,現(xiàn)在可以使用測(cè)試計(jì)劃的代碼覆蓋率設(shè)置來(lái)配置哪些目標(biāo)應(yīng)該包括在代碼覆蓋率結(jié)果中婚脱。(50502861)
Xcode 默認(rèn)情況下使用響應(yīng)文件將輸入文件傳遞給Swift編譯器今魔。要關(guān)閉此行為,請(qǐng)將
USE_SWIFT_RESPONSE_FILE
設(shè)置為NO
障贸。您可以在目標(biāo)中使用無(wú)限數(shù)量的 Swift 文件错森。(35879960)
運(yùn)行腳本階段和自定義構(gòu)建規(guī)則可以聲明和發(fā)出依賴(lài)項(xiàng)文件,使用一些編譯器和構(gòu)建工具使用的
makefile
樣式的.d
格式輸出篮洁。在確定是否應(yīng)該執(zhí)行規(guī)則或階段時(shí)涩维,構(gòu)建系統(tǒng)將檢查列出的文件,以了解后續(xù)構(gòu)建過(guò)程中的更改袁波。(49226986)項(xiàng)目現(xiàn)在可以使用定制的構(gòu)建規(guī)則來(lái)處理頭文件
(APPLY_RULES_IN_COPY_HEADERS)
瓦阐。(48185100)自定義構(gòu)建規(guī)則現(xiàn)在可以指定在執(zhí)行期間使用的附加靜態(tài)輸入文件。使用
SCRIPT_INPUT_FILE_#
環(huán)境變量為規(guī)則腳本提供這些已解析的輸入文件路徑篷牌。(49645853)Xcode 從信息中刪除了一些條目睡蟋。如果條目不適合為其構(gòu)建的平臺(tái),則在構(gòu)建時(shí)使用產(chǎn)品的
plist
文件娃磺,這對(duì)于配置為為多個(gè)平臺(tái)構(gòu)建的目標(biāo)非常有用薄湿〗斜叮可以通過(guò)將構(gòu)建設(shè)置DISABLE_INFOPLIST_PLATFORM_PROCESSING
設(shè)置為YES
來(lái)禁用此行為偷卧,在這種情況下,目標(biāo)必須承擔(dān)適當(dāng)管理這些條目的責(zé)任吆倦。(47797497)自定義構(gòu)建規(guī)則現(xiàn)在可以聲明它們應(yīng)該在每個(gè)體系結(jié)構(gòu)中運(yùn)行一次(默認(rèn)情況下)听诸,或者在所有體系結(jié)構(gòu)中只運(yùn)行一次。這對(duì)于與體系結(jié)構(gòu)無(wú)關(guān)的自定義規(guī)則非常有用蚕泽,例如晌梨,代碼生成工具生成的文件不會(huì)因體系結(jié)構(gòu)而異。(47716990)
XCFramework 允許將適用于多個(gè)平臺(tái)(包括iOS設(shè)備须妻、iOS模擬器和Mac Catalyst) 的二進(jìn)制框架或庫(kù)打包到一個(gè)可分發(fā)的. XCFramework包中仔蝌,開(kāi)發(fā)人員可以在自己的應(yīng)用程序中使用這個(gè)包』睦簦可以將
.xcframework
包添加到Xcode
目標(biāo)的鏈接庫(kù)階段敛惊,并且Xcode在構(gòu)建時(shí)使用所包含框架或庫(kù)的正確平臺(tái)版本。使用xcodebuild -create-xcframework
命令行支持創(chuàng)建框架绰更。捆綁在XCFramework
中的框架或庫(kù)應(yīng)該與發(fā)行版構(gòu)建設(shè)置設(shè)置為YES
的構(gòu)建庫(kù)一起構(gòu)建瞧挤。(49948269)
已知問(wèn)題
增量構(gòu)建可能無(wú)法對(duì)項(xiàng)目的非源相關(guān)更改(如資源文件修改)進(jìn)行正確的協(xié)同設(shè)計(jì)锡宋,這可能導(dǎo)致應(yīng)用程序無(wú)法啟動(dòng)。(41254808)
解決方案 :在相同的目標(biāo)中更改源文件以觸發(fā)codesign
流程特恬,或者執(zhí)行一個(gè)干凈的構(gòu)建执俩。為Mac Catalyst更新iOS應(yīng)用程序可能會(huì)顯示新的錯(cuò)誤診斷,說(shuō)明
Mac
上沒(méi)有某些框架或功能癌刽。如果其中一個(gè)診斷顯示錯(cuò)誤役首,可以通過(guò)將VALIDATE_WORKSPACE
構(gòu)建設(shè)置設(shè)置為NO
來(lái)禁用它。(50607174)新的構(gòu)建系統(tǒng)不計(jì)算到用戶(hù)主目錄的構(gòu)建設(shè)置路徑中的前導(dǎo)波浪號(hào)(~)显拜。(41339901)
解決方法:使用$(HOME)
代替宋税。如果目標(biāo)啟用
RUN_CLANG_STATIC_ANALYZER
,那么單個(gè)文件處理命令(如Compile讼油、Preprocess杰赛、Show Assembly
)將不能正確工作,因?yàn)樗鼈兩伸o態(tài)分析器輸出文件矮台,而不是適當(dāng)?shù)妮敵觥?43340227)
解決方法:在目標(biāo)中禁用RUN_CLANG_STATIC_ANALYZER
乏屯。如果應(yīng)用程序承載的測(cè)試目標(biāo)的構(gòu)建(其中定義了
TEST_HOST
)失敗,那么后續(xù)的構(gòu)建可能會(huì)在簽署應(yīng)用程序產(chǎn)品時(shí)失敗瘦赫,因?yàn)樵趹?yīng)用程序的初始簽名時(shí)辰晕,測(cè)試目標(biāo)是不完整的,并且是未簽名的确虱。(43402096)
解決方法 :執(zhí)行一個(gè)干凈的構(gòu)建含友。或者校辩,從app target
的產(chǎn)品中手動(dòng)刪除未簽名的測(cè)試包并重新構(gòu)建窘问。覆蓋
iOS
架構(gòu)和有效架構(gòu)構(gòu)建設(shè)置的目標(biāo)可能需要?jiǎng)h除或限制覆蓋,以便正確地為Mac Catalyst
構(gòu)建宜咒。(51074742)當(dāng)在
macOS 10.15
上使用Xcode
時(shí)惠赫,一些文件——特別是.xib文件和storyboard文件——可能會(huì)被復(fù)制而不是編譯,從而導(dǎo)致不正確的構(gòu)建產(chǎn)品故黑。(49351105)
解決方法:在正在復(fù)制的文件的文件檢查器中儿咱,將類(lèi)型彈出框從默認(rèn)值切換到<some type>,然后返回默認(rèn)值场晶。這將重置項(xiàng)目文件中的文件類(lèi)型為正確的類(lèi)型混埠,并使構(gòu)建系統(tǒng)能夠?qū)⑵淦ヅ涞秸_的工具來(lái)處理它。當(dāng)用戶(hù)第一次構(gòu)建時(shí)诗轻,可能會(huì)出現(xiàn)一個(gè)彈出窗口钳宪,說(shuō)明
SimulatorTrampoline
希望訪(fǎng)問(wèn)桌面文件,因?yàn)檫\(yùn)行在simulator
中的ibtool
需要訪(fǎng)問(wèn)這些文件來(lái)編譯故事板。(51114450)
解決方案:允許在提示符中訪(fǎng)問(wèn)文件使套。
已解決的問(wèn)題
當(dāng)使用
Xcode Server
中的測(cè)試計(jì)劃在多個(gè)配置下運(yùn)行測(cè)試時(shí)罐呼,集成報(bào)告現(xiàn)在可以正確地顯示測(cè)試所運(yùn)行的每個(gè)配置的名稱(chēng)。(53402104)如果更改活動(dòng)測(cè)試計(jì)劃文檔在
test navigator
是可見(jiàn)的,如添加或刪除一個(gè)測(cè)試目標(biāo),或啟用或禁用一個(gè)單獨(dú)的測(cè)試或測(cè)試類(lèi)——navigator
現(xiàn)在更新立即響應(yīng)的變化而變得不同步測(cè)試計(jì)劃侦高。(52065983)如果修改了活動(dòng)測(cè)試計(jì)劃文檔中的設(shè)置嫉柴,并且隨后調(diào)用test Again操作來(lái)重新運(yùn)行上次運(yùn)行的測(cè)試,那么修改后的設(shè)置現(xiàn)在將生效奉呛,而不是使用先前的設(shè)置计螺。(51145300)
macOS
現(xiàn)在支持按需資源(ODR)。(50358184)使用遺留的構(gòu)建系統(tǒng)特性瞧壮,如構(gòu)建規(guī)則或腳本階段發(fā)現(xiàn)的依賴(lài)文件登馒、定制構(gòu)建規(guī)則的輸入聲明,或
APPLY_RULES_IN_COPY_HEADERS
構(gòu)建設(shè)置咆槽,將生成一個(gè)錯(cuò)誤陈轿,而不是無(wú)聲地被忽略。(51318274)在
Watch
目標(biāo)中秦忿,將架構(gòu)構(gòu)建設(shè)置覆蓋為僅僅armv7k
并不會(huì)阻止部署到TestFlight
或Xcode
的企業(yè)分發(fā)工作流麦射。(51104990)索引器不會(huì)在索引
Swift
響應(yīng)文件之前等待執(zhí)行構(gòu)建。(52110336)在關(guān)閉和重新打開(kāi)一個(gè)項(xiàng)目之后灯谣,或者在使用
xcodebuild
執(zhí)行增量構(gòu)建時(shí)潜秋,來(lái)自先前構(gòu)建的關(guān)于不兼容框架、應(yīng)用程序擴(kuò)展和代碼簽名設(shè)置的診斷信息現(xiàn)在會(huì)在問(wèn)題導(dǎo)航器和構(gòu)建日志中顯示胎许。(51131884)默認(rèn)情況下峻呛,
Xcode
的新構(gòu)建系統(tǒng)不會(huì)檢測(cè)作為shell腳本
構(gòu)建階段輸入聲明的目錄中的更改。啟用構(gòu)建設(shè)置allow_recursive_script_input
會(huì)導(dǎo)致它這樣做辜窑。但是钩述,如果目錄中的任何文件是由依賴(lài)于腳本階段輸出的任務(wù)生成的,則會(huì)發(fā)出依賴(lài)循環(huán)錯(cuò)誤谬擦,必須通過(guò)重組目標(biāo)來(lái)解決切距。(41126633)
當(dāng)構(gòu)建一些使用隨需應(yīng)變資源的目標(biāo)時(shí)朽缎,構(gòu)建系統(tǒng)不再崩潰惨远。(49072702)
Command Line Tools
已解決的問(wèn)題
python3
和pip3
命令不再錯(cuò)誤地失敗,不再出現(xiàn)聲稱(chēng)只安裝命令行工具時(shí)需要Xcode
的錯(cuò)誤话肖。(53284703)當(dāng)使用
macOS Catalina 10.15 beta 4
時(shí)北秽,可以使用默認(rèn)的shell
路徑使用pip3
。(50877974)Python 3
在命令行工具包中可用最筒。(51727440)Xcode
的內(nèi)置usdz_converter
工具已被棄用贺氓,將被刪除。使用增強(qiáng)現(xiàn)實(shí)資源下的更新工具套件Augmented Reality床蜘。(52922369)
Core Data
新特性
現(xiàn)在有一個(gè)復(fù)選框辙培,使您能夠區(qū)分
string
屬性的默認(rèn)值是nil還是空字符串蔑水。設(shè)置時(shí),如果沒(méi)有指定其他默認(rèn)值扬蕊,則默認(rèn)值為空字符串搀别。(26534406)Xcode 11
數(shù)據(jù)模型文件格式不再為實(shí)體或?qū)傩詫?xiě)出或保存已廢棄的同步服務(wù)信息。(32524648)Core Data
數(shù)據(jù)模型編輯器在使用Xcode 11
數(shù)據(jù)模型文件格式和適當(dāng)?shù)牟渴鹉繕?biāo)時(shí)尾抑,添加了對(duì)派生屬性的支持歇父。(45567066)當(dāng)使用
Core Data
創(chuàng)建應(yīng)用程序時(shí),會(huì)出現(xiàn)一個(gè)新的復(fù)選框來(lái)啟用CloudKit
對(duì)數(shù)據(jù)模型默認(rèn)配置的支持再愈。對(duì)于使用新的配置檢查器的現(xiàn)有數(shù)據(jù)模型榜苫,也可以啟用此功能。當(dāng)數(shù)據(jù)模型配置支持CloudKit
時(shí)翎冲,數(shù)據(jù)模型編輯器執(zhí)行額外的驗(yàn)證垂睬,以確保模型符合Core data CloudKit
支持的需求。(51126024)
已解決的問(wèn)題
與
CloudKit
一起使用時(shí)抗悍,Core Data
模型中的屬性必須是可選的羔飞,或者具有默認(rèn)值。Xcode 11 beta 3
和更早版本錯(cuò)誤地要求這樣的屬性是可選的檐春,并且具有默認(rèn)值逻淌。(51593507)如果使用
UUID
屬性類(lèi)型、URI
屬性類(lèi)型或持久性歷史記錄特性疟暖,在使用Xcode 9
中使用的格式之前的數(shù)據(jù)模型文件格式時(shí)卡儒,將正確地生成錯(cuò)誤。(50188371)
Create ML
新特性
Create ML
中提供了活動(dòng)分類(lèi)俐巴、表格分類(lèi)和單詞標(biāo)記模板骨望。Create ML
中提供了對(duì)象檢測(cè)和文本分類(lèi)模板,加入了圖像分類(lèi)和聲音分類(lèi)模板欣舵。從macOS 10.15 beta 3
開(kāi)始使用這些模板擎鸠。(52009035)您現(xiàn)在可以使用聲音分類(lèi)預(yù)覽直接從麥克風(fēng)對(duì)聲音進(jìn)行分類(lèi)。(52131594)
已知問(wèn)題
-
Live listen
在沒(méi)有麥克風(fēng)的設(shè)備上崩潰缘圈。(53405469) - 聲音分類(lèi)器中的進(jìn)度圖可能無(wú)法正確更新劣光。(52911042)
Debugging
新特性
視圖調(diào)試器現(xiàn)在在檢查器中顯示NSImage
實(shí)例的名稱(chēng)。(35516797)用于調(diào)試視圖層次結(jié)構(gòu)的Size檢查器中的圖形篩選器標(biāo)識(shí)所選視圖上的哪些屬性受到約束糟把。在篩選器中選擇屬性將顯示的約束縮小到與該屬性匹配的約束绢涡。標(biāo)準(zhǔn)修飾符鍵(如
Shift和Command
)可用于展開(kāi)顯示匹配這些屬性的約束的組合的選擇。(44864394)現(xiàn)在可以調(diào)試
watchOS
應(yīng)用程序的視圖層次結(jié)構(gòu)遣疯。(45173634)現(xiàn)在雄可,您可以從設(shè)備和模擬器窗口模擬連接設(shè)備的網(wǎng)絡(luò)條件和熱狀態(tài)。(44608479)
視圖調(diào)試器在調(diào)試導(dǎo)航器和畫(huà)布中顯示UIWindowScene
實(shí)例。(45378799)
可以在scheme選項(xiàng)中禁用視圖調(diào)試数苫。(45928299)用于調(diào)試視圖層次結(jié)構(gòu)的大小檢查器有關(guān)于約束的更多細(xì)節(jié)聪舒,包括過(guò)濾器、編輯器中的懸停高亮顯示和更好的描述虐急。(16153188)
視圖調(diào)試器支持調(diào)試
Mac Catalyst
應(yīng)用程序过椎。(37507479)視圖調(diào)試器檢查器顯示 NSImageView 和 NSButton 的 contentTintColor 。(49506123)
for
視圖調(diào)試器現(xiàn)在顯示
iOS
命名的名稱(chēng)和系統(tǒng)顏色戏仓。(45162028)視圖調(diào)試器顯示特征集合信息疚宇。(45161975)
視圖調(diào)試器顯示
UIImage
實(shí)例的名稱(chēng)。(45327089)視圖調(diào)試器現(xiàn)在顯示符號(hào)信息赏殃,如基線(xiàn)和中線(xiàn)敷待。(49508874)
調(diào)試欄外觀(guān)切換器支持在
iOS
上在暗模式和亮模式之間切換。(45161907)Scheme
編輯器的Diagnostics
選項(xiàng)卡中的“暫停問(wèn)題”復(fù)選框被常規(guī)斷點(diǎn)替換仁热“褚荆可以使用斷點(diǎn)導(dǎo)航器創(chuàng)建運(yùn)行時(shí)問(wèn)題斷點(diǎn)。(31409112)使用環(huán)境覆蓋(可從調(diào)試欄訪(fǎng)問(wèn))覆蓋已調(diào)試流程的外觀(guān)抗蠢、動(dòng)態(tài)類(lèi)型和可訪(fǎng)問(wèn)性選項(xiàng)等系統(tǒng)設(shè)置举哟。(45848655)
調(diào)試器支持使用崩潰日志(。崩潰文件)迅矛。(48408310)
調(diào)試器可以調(diào)試
tvOS
的頂層擴(kuò)展妨猩。(48869701)在安裝或調(diào)試應(yīng)用程序時(shí),
Xcode
更喜歡使用Wi-Fi連接手表秽褒。
斷點(diǎn)的VoiceOver
操作菜單包含一個(gè)跳轉(zhuǎn)到相應(yīng)代碼行的操作壶硅。(44941178)在調(diào)試帶有約束的視圖時(shí),雙擊
size
檢查器中的約束將在編輯器中選擇該約束销斟,并在檢查器中顯示約束的信息庐椒。(18842905)
已知問(wèn)題
在
watchOS 6
中,APNs請(qǐng)求頭中需要一個(gè)APNs -push-type
鍵蚂踊。為正在發(fā)送的通知類(lèi)型指定警告或背景乏梁。Xcode
中的模板APNs
文件默認(rèn)情況下不包含這個(gè)頭文件碘菜。(50709418)調(diào)試符號(hào)可能無(wú)法用于
Apple Watch
火鼻。(26995636)
解決方案:驗(yàn)證您有一個(gè)工作的互聯(lián)網(wǎng)連接稚字,并在首選項(xiàng)>帳戶(hù)中登錄到您的蘋(píng)果ID。在
watchOS
模擬器中調(diào)試手表應(yīng)用程序可能會(huì)在模擬器首次啟動(dòng)時(shí)失敗特纤。(50263836)
解決方法:等待手表模擬器完成引導(dǎo)军俊,然后再次開(kāi)始調(diào)試。App
和熱狀態(tài)跟蹤的能量沖擊儀可能會(huì)停止更新捧存。(50968828)
解決方法:停止并重新運(yùn)行應(yīng)用程序。
已解決的問(wèn)題
修正了當(dāng)在調(diào)試導(dǎo)航器中拖動(dòng)進(jìn)程項(xiàng)時(shí),
macOS 10.15上的Xcode
崩潰昔穴。(48453949)您可以調(diào)試設(shè)備上的交互式預(yù)覽镰官。(51183159)
當(dāng)使用運(yùn)行當(dāng)前
beta
操作系統(tǒng)發(fā)行版的設(shè)備時(shí),能量報(bào)告顯示設(shè)備的熱狀態(tài)吗货。(52349364)調(diào)試可用于設(shè)備上的預(yù)覽泳唠。(47668840,51139546)
Environment override
按鈕出現(xiàn)在調(diào)試欄中,用于watchOS
和iOS
應(yīng)用程序擴(kuò)展目標(biāo)宙搬,而不需要先暫停進(jìn)程笨腥。(51203640)預(yù)覽調(diào)試會(huì)話(huà)不再在預(yù)覽不可見(jiàn)時(shí)結(jié)束。(50593619)
添加到正在運(yùn)行的進(jìn)程中的運(yùn)行時(shí)問(wèn)題斷點(diǎn)行為正確勇垛。(49433870)
視圖調(diào)試器中的項(xiàng)可以在上下文菜單的
Debug
導(dǎo)航器中顯示脖母。(18598643)在調(diào)試視圖層次結(jié)構(gòu)時(shí)改進(jìn)了
Swift
類(lèi)名的格式。(39679411)修正了調(diào)試控制臺(tái)將顯示頁(yè)面列指南的問(wèn)題闲孤。(49693398)
斷點(diǎn)支持
VoiceOver
命令來(lái)打開(kāi)快捷菜單谆级。(44940944)WatchKit
框架不再包含在iOS SDK
中。如果您正在使用來(lái)自iOS
的WatchKit api
讼积,則需要?jiǎng)h除此使用肥照。WatchKit框架仍然可以在watchOS
上使用。如果您正在使用來(lái)自iOS的WatchKit api
來(lái)推斷配對(duì)的Apple Watch
的功能可用性勤众,那么在向Feedback Assistant.
提交反饋時(shí)舆绎,請(qǐng)包含關(guān)于您的用例的信息。(49707950)為了與遺留軟件兼容们颜,
macOS
中包含了Python亿蒸、Ruby和Perl
等腳本語(yǔ)言運(yùn)行時(shí)。在macOS
的未來(lái)版本中掌桩,腳本語(yǔ)言運(yùn)行時(shí)在默認(rèn)情況下不可用边锁,可能需要安裝一個(gè)附加包。如果您的軟件依賴(lài)于腳本語(yǔ)言波岛,建議您將運(yùn)行時(shí)捆綁在應(yīng)用程序中茅坛。不推薦使用
Python 2.7
。這個(gè)版本包含在macOS
中则拷,以便與遺留軟件兼容贡蓖。macOS
的未來(lái)版本將不包括Python 2.7
。相反煌茬,建議您在終端中運(yùn)行python3
斥铺。(51097165)Quartz Composer
框架不受歡迎。從macOS 10.15
開(kāi)始坛善,Quartz Composer
框架將被標(biāo)記為不贊成使用晾蜘,并且為了兼容性的目的仍然保留邻眷。如果您的應(yīng)用程序使用的是Quartz Composer
,那么可以過(guò)渡到Core Image剔交、SceneKit或Metal
等框架肆饶。(50911608)命令行工具對(duì)
Subversion
的支持——包括svn、git-svn
和相關(guān)命令——不再由Xcode
提供岖常。如果需要Subversion
或相關(guān)的命令行工具驯镊,可以通過(guò)運(yùn)行xcode-select——install
來(lái)安裝命令行工具包。(50266910)
Devices
已知問(wèn)題
當(dāng)同時(shí)運(yùn)行到多個(gè)目的地時(shí)竭鞍,使用
xcodebuild
進(jìn)行測(cè)試可能會(huì)導(dǎo)致崩潰板惑。(52962341)
解決方案:通過(guò)將- Disable -concurrent-destination-test
標(biāo)志傳遞給xcodebuild
來(lái)禁用并發(fā)目標(biāo)測(cè)試。使用
xcodebuild
中的設(shè)備或模擬器名稱(chēng)指定運(yùn)行目的地不能正確解析偎快。(52081230)
解決方案:根據(jù)平臺(tái)和ID
而不是名稱(chēng)指定目的地冯乘。在設(shè)備上構(gòu)建并運(yùn)行
watchOS應(yīng)用程序
可能會(huì)無(wú)限期地顯示系統(tǒng)轉(zhuǎn)輪。(51726238)
解決方法:重新啟動(dòng)設(shè)備滨砍。
已解決的問(wèn)題
解決了一個(gè)問(wèn)題往湿,阻止運(yùn)行一個(gè)手表應(yīng)用程序與線(xiàn)程殺菌劑建立啟用在舊版本的
watchOS
。(49288795)解決了在視網(wǎng)膜和非視網(wǎng)膜顯示器之間切換導(dǎo)致的半點(diǎn)幀差異問(wèn)題惋戏。(20175879)
DriverKit
已解決的問(wèn)題
-
DriverKit
驅(qū)動(dòng)程序構(gòu)建正確领追。(52858797)
Instruments
新特性
儀器中的軌跡現(xiàn)在可以在層次結(jié)構(gòu)中形成。它們現(xiàn)在可以表示任何工程類(lèi)型响逢,并使用定制的工具創(chuàng)建绒窑。(28615789)
現(xiàn)在,
Instruments
允許一次從表中復(fù)制多行舔亭。(39326522)工具允許創(chuàng)建范圍些膨,以便在跟蹤文檔中更容易地導(dǎo)航。(49022012)
<os-signpost-point-schema>
在定制工具中可用來(lái)匹配來(lái)自os_signpost(_:dso:log:name:signpostID:)的點(diǎn)事件钦铺。(50586708)
已知問(wèn)題
- 當(dāng)分析一個(gè)獨(dú)立的
watchOS應(yīng)用程序
時(shí)订雾,會(huì)啟動(dòng)一個(gè)iOS模擬器
。(49788679)
已解決的問(wèn)題
所選軌跡在儀器的觸摸欄區(qū)域中呈現(xiàn)矛洞。(50186374)
在運(yùn)行
iOS洼哎、iPadOS、watchOS或tvOS
的設(shè)備上進(jìn)行概要分析時(shí)沼本,Instruments
對(duì)從其接收的os_log(:dso:log::_:) 和 os_signpost(_:dso:log:name:signpostID:)消息使用正確的類(lèi)別噩峦。感興趣的點(diǎn)現(xiàn)在可以正確地接收事件,并且自定義工具類(lèi)別匹配的行為也正確抽兆。(52193505)
Interface Builder
新特性
界面生成器支持
ios13
UIVisualEffectView 模糊和動(dòng)態(tài)視覺(jué)效果识补。(48023286)界面生成器支持
ios13
UIActivityIndicatorView樣式。(48573772)iOS家庭顯示器的顏色現(xiàn)在適應(yīng)于淺色和深色畫(huà)布的外觀(guān)辫红。(48610782)
接口生成器支持自定義 UIButton 符號(hào)配置凭涂。(51323174)
界面生成器支持新的布局 TVCollectionViewFullScreenLayout 在蘋(píng)果電視上祝辣。(47598895)
UIViewController 實(shí)例現(xiàn)在默認(rèn)為自動(dòng)模式表示模式。模態(tài)表示
segue
可以覆蓋此設(shè)置导盅。(48129590)界面生成器支持
iOS
上的暗模式较幌。(45314199)Interface Builder
的設(shè)備欄可以讓你在iOS
應(yīng)用程序的亮暗界面之間切換揍瑟。(45282451)您可以添加
SwiftUI
宿主控制器白翻,例如 UIHostingController,來(lái)將storyboard
控制器流連接到管理SwiftUI
視圖層次結(jié)構(gòu)的宿主控制器绢片。您可以在Interface Builder
中填充宿主控制器的內(nèi)容滤馍,方法是提供一個(gè)通過(guò)編程設(shè)置控制器的rootView的自定義子類(lèi)。(46039344)你也可以使用
Segue
動(dòng)作設(shè)置UIHostingController
或 NSHostingController 的根視圖底循。對(duì)象庫(kù)現(xiàn)在匹配所選的系統(tǒng)范圍外觀(guān)巢株。(50874168)
NSStackView 檢查器現(xiàn)在允許配置負(fù)間距。(49012055)
NSSwitch 在
macOS 10.15
上運(yùn)行時(shí)可用熙涤。(47566686)UITableView 中的單元格現(xiàn)在可以通過(guò)畫(huà)布中的自動(dòng)布局約束視圖自調(diào)整大小阁苞。若要為現(xiàn)有表視圖選擇行為,請(qǐng)?jiān)诖笮z查器中為表視圖估計(jì)的項(xiàng)大小啟用“自動(dòng)”祠挫,并為單元格的高度啟用“自動(dòng)”那槽。(35735970)
NSView 和UIView 在尺寸檢查器中有一個(gè)布局模式選項(xiàng),可以顯式地選擇“將自動(dòng)調(diào)整蒙版轉(zhuǎn)換為約束”等舔。默認(rèn)設(shè)置為
“Automatic”
骚灸,這是現(xiàn)有的行為』胖玻“自動(dòng)”意味著當(dāng)視圖受storyboard或.xib
文件中的約束影響時(shí)甚牲,“將自動(dòng)調(diào)整蒙版轉(zhuǎn)換為約束”將關(guān)閉,如果不受約束則打開(kāi)蝶柿。(37352354)提高了“添加缺失約束”自動(dòng)布局約束生成的可靠性丈钙。(43694622)
UIScrollView 的內(nèi)容在畫(huà)布中是可滾動(dòng)的,一旦它的子視圖被自動(dòng)布局約束完全約束交汤。(44727961)
UICollectionView 中的單元格現(xiàn)在可以通過(guò)畫(huà)布中的自動(dòng)布局約束視圖自調(diào)整大小雏赦。若要為現(xiàn)有集合視圖選擇行為,請(qǐng)?jiān)诖笮z查器中為集合視圖的估計(jì)大小啟用“自動(dòng)”蜻展,并為單元格的大小啟用“自動(dòng)”. 如果部署在
iOS 13
之前,你可以激活自我分級(jí)集合視圖細(xì)胞通過(guò)調(diào)用 performBatchUpdates(_:completion:) viewDidLoad()喉誊。(45617083)在字體彈出窗口檢查器中,家庭彈出窗口現(xiàn)在呈現(xiàn)菜單項(xiàng)作為適用字體的預(yù)覽纵顾。(31484154)
現(xiàn)在可以在文檔范圍內(nèi)對(duì)錯(cuò)位的幀執(zhí)行更新幀伍茄,而不需要選擇視圖。(22076710)
UIScrollView
支持內(nèi)容和框架布局指南施逾,可以在Size檢查器中啟用它們敷矫,以便對(duì)可滾動(dòng)內(nèi)容進(jìn)行更多控制例获。(29711618)界面建設(shè)者支持新的蘋(píng)果電視標(biāo)簽欄風(fēng)格。(47598643)
新的 WKInterfaceTextField 接口元素可用于
watchOS
曹仗。(45754186)canvas
支持為Mac Catalyst
應(yīng)用程序定制界面榨汤。(37797710)SF
符號(hào)在圖像檢查器屬性中可用。(47532055)UIImageView 檢查器包括對(duì)配置符號(hào)的支持怎茫。(47797500)
使用帶有新的
@IBSegueAction
屬性注解的視圖控制器方法供常,可以使用帶有任何所需值的自定義初始化器,在代碼中創(chuàng)建segue
的目標(biāo)視圖控制器鄙陡。這使得在故事板中使用具有非可選初始化需求的視圖控制器成為可能。在源視圖控制器上創(chuàng)建從segue到@IBSegueAction
方法的連接培漏。在支持Segue
操作的新OS版本上溪厘,將調(diào)用該方法胡本,它返回的值將是傳遞給 prepare(for:sender:) 的Segue
對(duì)象的destinationViewController
牌柄。可以在一個(gè)源視圖控制器上定義多個(gè)@IBSegueAction
方法侧甫,這可以減少在prepare(for:sender:)
中檢查segue
標(biāo)識(shí)符字符串的需要珊佣。(47091566)IBSegueAction
方法最多接受三個(gè)參數(shù):編碼器、發(fā)送器和segue
的標(biāo)識(shí)符披粟。需要第一個(gè)參數(shù)咒锻,如果需要,可以從方法的簽名中省略其他參數(shù)守屉。必須將 NSCoder
傳遞到目標(biāo)視圖控制器的初始化器惑艇,以確保它是用storyboard
中配置的值定制的。該方法返回一個(gè)視圖控制器拇泛,該視圖控制器匹配故事板中定義的目標(biāo)控制器類(lèi)型滨巴,或nil
,以使用標(biāo)準(zhǔn)init(coder:)
方法初始化目標(biāo)控制器俺叭。如果您知道不需要返回nil
恭取,則返回類(lèi)型可以是非可選的。
在Swift中熄守,添加@IBSegueAction
屬性:
@IBSegueAction
func makeDogController(coder: NSCoder, sender: Any?, segueIdentifier: String?) -> ViewController? {
PetController(
coder: coder,
petName: self.selectedPetName, type: .dog
)
}
在Objective-C中蜈垮,在返回類(lèi)型前添加IBSegueAction:
- (IBSegueAction ViewController *)makeDogController:(NSCoder *)coder
sender:(id)sender
segueIdentifier:(NSString *)segueIdentifier
{
return [PetController initWithCoder:coder
petName:self.selectedPetName
type:@"dog"];
}
已知問(wèn)題
當(dāng)在設(shè)備欄中選擇
Mac設(shè)備
查看iPad 故事板
時(shí),項(xiàng)目添加的自定義字體不會(huì)呈現(xiàn)裕照。(48528374)如果一個(gè)字形有光明模式和黑暗模式表示攒发,黑暗模式表示將不會(huì)出現(xiàn)在故事板中。(50354204)
在
Interface Builder
中配置的UIKit菜單
在macOS
上運(yùn)行時(shí)可用晋南,但在iOS上不可用惠猿。(51077651)蘋(píng)果電視故事板中的 ARView 對(duì)象會(huì)導(dǎo)致界面生成器渲染崩潰。(50971800)
iOS狀態(tài)欄
不會(huì)顯示在界面構(gòu)建器畫(huà)布中搬俊。(48639919)包含用
Xcode 11
創(chuàng)建的菜單命令的視圖控制器場(chǎng)景會(huì)導(dǎo)致應(yīng)用程序在iOS 12上運(yùn)行時(shí)崩潰紊扬。(50871098)在
Interface Builder
中蜒茄,將對(duì)齊設(shè)置為“center”或“right”的UILabel , UITextField , UITextView 實(shí)例在為macOS設(shè)計(jì)或運(yùn)行時(shí)對(duì)齊錯(cuò)誤。(50062524)
解決方法:在 awakeFromNib() 中重新應(yīng)用所需的對(duì)齊餐屎。在
Xcode 11 beta版
之前使用Xcode版本
創(chuàng)建的項(xiàng)目在Xcode 11 beta版
中打開(kāi)時(shí)保留默認(rèn)的自定義顏色檀葛。(50828300)
已解決的問(wèn)題
使用
Xcode 11
創(chuàng)建的iOS或tvOS模板
項(xiàng)目中的故事板和.xib
文件現(xiàn)在可以在以前的Xcode版本
中打開(kāi)。(51230799)使用
Xcode 11
創(chuàng)建的包含第四系填充顏色腹缩、第二系填充顏色屿聋、第三系填充顏色或系統(tǒng)填充顏色的故事板和.xib文件
可以在較舊的Xcode版本
上打開(kāi),而不會(huì)導(dǎo)致崩潰藏鹊。(51233884,51236844)修正了集合視圖單元格自調(diào)整大小的布局問(wèn)題润讥,這些問(wèn)題來(lái)自于故事板和
.xib文件
,當(dāng)編譯和部署到iOS 12.4
及以后版本時(shí)(49537998)解決了在查看
Mac Catalyst
應(yīng)用程序的storyboard
時(shí)盘寡,阻止界面構(gòu)建器設(shè)備欄中的亮或暗界面樣式組生效的問(wèn)題楚殿。(50929581)Xcode
在打開(kāi).xib
文件或帶有自定義視圖的故事板文件時(shí)不會(huì)崩潰,如果該項(xiàng)目包含Swift
包竿痰,該視圖被標(biāo)記為IBDesignable
脆粥。(50551974)拖出一個(gè)新的
iOS
主菜單不再會(huì)導(dǎo)致崩潰,如果你在畫(huà)布上拖動(dòng)一個(gè)現(xiàn)有的菜單影涉。(51237295)解決了與打開(kāi)故事板和
.xib文件
相關(guān)的性能退化問(wèn)題变隔。(51282755)UIDatePicker 的檢查器現(xiàn)在只顯示適用于所選模式的屬性。(26726319)
用于添加
iOS設(shè)備
的預(yù)覽編輯器菜單現(xiàn)在與當(dāng)前畫(huà)布方向匹配蟹倾。(48818470)預(yù)覽編輯器項(xiàng)現(xiàn)在保存配置的區(qū)域設(shè)置或偽區(qū)域設(shè)置匣缘。(48303753)
在接口生成器中配置為
Count Down的UIDatePicker
對(duì)象現(xiàn)在在運(yùn)行時(shí)使用指定的持續(xù)時(shí)間。(23426425)在不使用自動(dòng)布局的文檔中也可以看到
Embed In bar
按鈕鲜棠。(46855203)NSControl 的子類(lèi)現(xiàn)在在庫(kù)和文檔大綱中有唯一的圖標(biāo)肌厨。(24231920)
Library
已知問(wèn)題
修正了從庫(kù)中拖動(dòng)子視圖控制器時(shí)背景顏色不正確的問(wèn)題。(50388578)
庫(kù)中的所有
UI控件
都正確切換到暗模式岔留。(49830961)
Linking
已解決的問(wèn)題
- 目標(biāo)包含
Swift
代碼夏哭,啟用位碼構(gòu)建設(shè)置設(shè)置為Yes
,在使用存檔操作構(gòu)建時(shí)正確鏈接献联。(52804818)
LLDB
新特性
-
LLDB
的Python腳本
現(xiàn)在基于Python 3
竖配。如果您使用的Python擴(kuò)展
與python3不兼容
,它們就會(huì)崩潰里逆。為了幫助轉(zhuǎn)換进胯,您可以在python2
模式下運(yùn)行,方法是設(shè)置一個(gè)默認(rèn)值:
defaults write com.apple.dt.lldb DefaultPythonVersion 2
Python 2
支持將在未來(lái)被移除原押。(47806994)Swift
Decimal 值在LLDB
中有一個(gè)數(shù)據(jù)格式化程序胁镐,使它們以可讀的方式顯示。(38983073)LLDB
現(xiàn)在支持檢查通過(guò)支持庫(kù)演化而編譯的Swift
類(lèi)型。(48018240)
已解決的問(wèn)題
在Swift代碼中重新聲明
self
可以與LLDB
正常工作盯漂。(39611934)當(dāng)
PATH
中的python二進(jìn)制
文件不是系統(tǒng)二進(jìn)制文件時(shí)颇玷,Swift REPL和LLDB
的python
腳本可以正常工作。(40961425)解決了在調(diào)試 XCTest 測(cè)試時(shí)阻止
LLDB
訪(fǎng)問(wèn)變量的多個(gè)問(wèn)題就缆。(41471338)
Localization
新特性
您現(xiàn)在可以在資產(chǎn)目錄中本地化資產(chǎn)帖渠。在屬性檢查器中啟用本地化。(12948139)
設(shè)置包現(xiàn)在包含在
Xcode
本地化目錄中竭宰。(12495197)genstring
的手冊(cè)頁(yè)提供了更詳細(xì)的行為文檔空郊。(19709369)genstrings
工具得到了增強(qiáng),并與extractLocStrings
工具合并切揭。以前的版本已被棄用狞甚,已重命名為ogenstring
,現(xiàn)在必須使用xcrun
調(diào)用廓旬。應(yīng)該將調(diào)用xcrun extractlocstring
的任何腳本更改為使用genstring
哼审,但是目前提供了一個(gè)兼容符號(hào)鏈接來(lái)調(diào)用genstring
。(19709395)genstrings
工具現(xiàn)在接受一個(gè)-encoding
參數(shù)嗤谚,該參數(shù)允許指定輸入文件的文件編碼棺蛛。(48224455)更新版本的
genstring
改進(jìn)了錯(cuò)誤報(bào)告,并且可以在以前默認(rèn)接受的場(chǎng)景中報(bào)告錯(cuò)誤巩步。例如,如果MyApp
目錄包含子目錄桦踊,genstrings MyApp/*
將失敗椅野,因?yàn)?genstrings
文件參數(shù)必須是源文件。(48304658)genstrings
工具現(xiàn)在可以使用任意數(shù)量的-s
參數(shù)來(lái)指定與 NSLocalizedString 類(lèi)似的附加宏籍胯,或者用于提取字符串的函數(shù)竟闪。例如,genstrings -s MyErrorSring -s MyUIString myfile.swift
將MyErrorString
和MyUIString
都視為等同于NSLocalizedString
杖狼。(48734596)
請(qǐng)注意: 使用-s參數(shù)并不會(huì)禁止對(duì)
NSLocalizedString
或CFCopyLocalizedString
的支持炼蛤。
本地化命令和
genstrings
工具的導(dǎo)出現(xiàn)在支持多行Swift
和Objective-C
字符串,并且在識(shí)別NSLocalizedString
參數(shù)時(shí)放寬了空格要求蝶涩。(50516442)本地化命令的導(dǎo)出性能得到了很大的改進(jìn)理朋。(40548416)
已解決的問(wèn)題
本地化命令和
genstrings
工具的導(dǎo)出不再在轉(zhuǎn)義的高Unicode
代碼點(diǎn)(比如\U0001F603)
上崩潰癣丧。(18898240)導(dǎo)入包含內(nèi)嵌換行的本地化字符串現(xiàn)在會(huì)生成帶轉(zhuǎn)義
\n序列
的字符串文件驶乾。(44649979)Xcode
本地化導(dǎo)出生成的XLIFF文件
現(xiàn)在將xml:space="preserve"
添加到<trans-unit />
元素中,以確保保留空白伊约。(44928807)
Mac Catalyst
已知問(wèn)題
Mac Catalyst
的color asset
變量不會(huì)在運(yùn)行時(shí)傳遞熄攘。(51113192)Mac Catalyst
的NSDataAsset
變量在運(yùn)行時(shí)返回nil
兽愤。(50022757)
Organizer
新特性
- 新的 Metrics organizer 顯示電池壽命和性能分析為您的應(yīng)用程序,以幫助您推動(dòng)優(yōu)化。
- 當(dāng)您的應(yīng)用程序在app Store上發(fā)布時(shí)浅萧,以及在足夠的字段使用之后逐沙,將報(bào)告您的應(yīng)用程序的指標(biāo)。
- 可用的指標(biāo)包括電池消耗洼畅、啟動(dòng)時(shí)間酱吝、掛起速率、內(nèi)存和磁盤(pán)寫(xiě)操作土思。
- 您可以根據(jù)設(shè)備和使用特性篩選數(shù)據(jù)务热。(43028903)
Playgrounds
新特性
在
Xcode 11 beta
版中不支持SwiftUI live
視圖和操場(chǎng)中的內(nèi)聯(lián)結(jié)果。(42226387)工作區(qū)中的操場(chǎng)不能從
Swift
包導(dǎo)入目標(biāo)己儒。(47668990)UIKit
中視圖的快速查看和內(nèi)聯(lián)結(jié)果預(yù)覽可以顯示為空白矩形崎岂。(50787870)
已解決的問(wèn)題
操場(chǎng)的前幾行不再被卡在窗戶(hù)下面。(47529397)
修正了在
macOS 10.15
上運(yùn)行游樂(lè)場(chǎng)時(shí)闪湾,由于網(wǎng)速慢或不可靠而導(dǎo)致的延遲冲甘。(48995467)如果代碼引用主線(xiàn)程以外的視圖,游樂(lè)場(chǎng)將不再崩潰途样。(46579594)
Project Navigator
新特性
-
Xcode
可以使用find
導(dǎo)航器在工作區(qū)或項(xiàng)目中找到資產(chǎn)江醇。資產(chǎn)目錄編輯器還支持查找和替換,您可以使用replace
重命名資產(chǎn)何暇。(14279237)
Reality Composer
新特性
- 增加了對(duì)AR場(chǎng)景中對(duì)象錨的支持陶夜。(48774003)
已知問(wèn)題
由先前發(fā)布的
Reality Composer
或Xcode beta
版本創(chuàng)建的現(xiàn)實(shí)文件不再受支持。(53180175)
解決方案:使用最新版本的Reality Composer
或Xcode
重新導(dǎo)出現(xiàn)實(shí)文件裆站。從
macOS
上的Reality Composer
的內(nèi)容庫(kù)中添加的對(duì)象與iOS和iPadOS
上的Reality Composer
的build 1A68
不兼容条辟。如果在接口生成器中沒(méi)有指定它的模塊,則在運(yùn)行時(shí)加載故事板時(shí)不會(huì)找到 RealityKit ARView 類(lèi)宏胯。在
Xcode
控制臺(tái)中顯示以下錯(cuò)誤消息:“Interface Builder文件中的未知類(lèi)ARView”羽嫡。”(50840767)
解決方案:ARView
是一個(gè)Swift
視圖類(lèi)肩袍,需要在接口構(gòu)建器檢查器中指定它的類(lèi)名(ARView)
和模塊(RealityKit)
杭棵。如果在
Xcode
項(xiàng)目中沒(méi)有使用RealityKit
,則在運(yùn)行時(shí)加載storyboard
時(shí)不會(huì)找到RealityKit
的ARView
類(lèi)氛赐。在Xcode控制臺(tái)顯示以下錯(cuò)誤消息:“Interface Builder
文件中的未知類(lèi)_TtC10RealityKit6ARView
魂爪。”(50900969)
解決方案:如果導(dǎo)入RealityKit
并使用ARView
類(lèi)型定義@IBOutlet
鹰祸,但在項(xiàng)目中不要使用RealityKit
符號(hào)甫窟,則會(huì)出現(xiàn)此問(wèn)題。要確保RealityKit
在運(yùn)行時(shí)使用此配置加載蛙婴,請(qǐng)手動(dòng)將RealityKit
添加到目標(biāo)的Link二進(jìn)制文件
和庫(kù)構(gòu)建階段粗井。
已解決的問(wèn)題
改進(jìn)了對(duì)導(dǎo)入的
USDZ
文件的支持。(49630946)改進(jìn)了對(duì)操作對(duì)象的支持。(50036512)
來(lái)自其他場(chǎng)景的通知觸發(fā)器和通知操作將不再出現(xiàn)在沒(méi)有創(chuàng)建它們的場(chǎng)景中浇衬。(51008577)
由
Xcode
從一個(gè)Reality Composer
項(xiàng)目自動(dòng)生成的. Reality
文件包含項(xiàng)目中的所有場(chǎng)景懒构。(51048599,51868814)RealityKit
在iOS模擬器中可用。(48603396)
Server
已知問(wèn)題
當(dāng)編輯使用
SSH
進(jìn)行身份驗(yàn)證的項(xiàng)目的bot
時(shí)耘擂,Xcode Server
可能會(huì)禁用一些特定于項(xiàng)目的設(shè)置胆剧。(51009722)
解決方案:在編輯bot時(shí),要么替換repository
選項(xiàng)卡中的repository
醉冤,要么使用基于http
的身份驗(yàn)證和Xcode
服務(wù)器集成秩霍。當(dāng)從任何集成的上下文菜單創(chuàng)建機(jī)器人時(shí),
Xcode Server
都可能導(dǎo)致崩潰蚁阳。(51082255)
解決方法:從服務(wù)器的上下文菜單或Xcode
中的產(chǎn)品菜單創(chuàng)建機(jī)器人铃绒。由多個(gè)目標(biāo)構(gòu)建的源文件中出現(xiàn)的構(gòu)建問(wèn)題可以在每次集成中標(biāo)記為已解決并重新引入。(46523551)
已解決的問(wèn)題
Xcode Server
現(xiàn)在支持Mac Catalyst應(yīng)用螺捐。(50602873)Swift包始終出現(xiàn)在
Xcode Server bot
配置存儲(chǔ)庫(kù)窗格中颠悬。(50058808)解決了
Xcode Server
無(wú)法自動(dòng)簽署使用iCloud
、應(yīng)用程序組定血、Apple Pay
或錢(qián)包功能的項(xiàng)目的問(wèn)題赔癌。(41008156,44704694)
Signing and Distribution
新特性
Xcode 11 beta 4
支持新的maccatalyst
。包標(biāo)識(shí)符前綴澜沟。因此灾票,Mac Catalyst
應(yīng)用程序使用的配置文件必須重新生成,以反映新的前綴倔喂。如果使用自動(dòng)簽名铝条,將自動(dòng)生成一個(gè)新的配置配置文件。如果您正在使用手動(dòng)簽名席噩,請(qǐng)登錄到開(kāi)發(fā)人員帳戶(hù)并重新生成Mac Catalyst
應(yīng)用程序使用的配置文件。(52535178)如果您正在使用以前的
Xcode 11 beta版
贤壁,并且已經(jīng)為您的應(yīng)用程序提供了配置文件悼枢,那么它將繼續(xù)工作,直到您更新到Xcode 11 beta 4
脾拆。如果您還沒(méi)有為您的應(yīng)用程序提供配置文件馒索,您需要更新到Xcode 11 beta 4
,以便生成一個(gè)具有正確應(yīng)用程序ID前綴的配置文件名船。如果代碼包含對(duì)
bundle標(biāo)識(shí)符
的引用绰上,則需要更新這些引用。簽名和功能設(shè)置現(xiàn)在合并在項(xiàng)目編輯器中的新簽名和功能選項(xiàng)卡中渠驼。新選項(xiàng)卡支持跨多個(gè)構(gòu)建配置使用不同的應(yīng)用程序功能蜈块。新的功能庫(kù)使搜索可用功能成為可能。(35254597)
Xcode 11
支持新的Apple
開(kāi)發(fā)和Apple
分發(fā)證書(shū)類(lèi)型。這些證書(shū)支持在任何蘋(píng)果平臺(tái)上構(gòu)建百揭、運(yùn)行和分發(fā)應(yīng)用程序∷ィ現(xiàn)有的iOS和macOS開(kāi)發(fā)和分發(fā)證書(shū)將繼續(xù)工作,但是器一,在Xcode 11
中創(chuàng)建的新證書(shū)將使用新類(lèi)型课锌。以前版本的Xcode
不支持這些證書(shū)。(45527608)
已知問(wèn)題
-
如果你的iPad應(yīng)用程序使用了私有權(quán)限祈秕,那么
Mac Catalyst
應(yīng)用程序可能無(wú)法使用這些權(quán)限渺贤。
解決方案:為Mac Catalyst
應(yīng)用程序生成一個(gè)新的授權(quán)文件,并按照以下步驟排除不可用的授權(quán):- 在項(xiàng)目導(dǎo)航器中選擇應(yīng)享權(quán)利文件请毛,然后選擇
File > Duplicate
志鞍。
- 在項(xiàng)目導(dǎo)航器中選擇應(yīng)享權(quán)利文件请毛,然后選擇
- 給你的
Mac Catalyst
授權(quán)文件一個(gè)唯一的名稱(chēng)并保存它。
- 給你的
3.從新的
Mac Catalyst
權(quán)限文件中刪除任何不可用的私有權(quán)限获印。- 在項(xiàng)目編輯器中導(dǎo)航到
Mac Catalyst
應(yīng)用程序的構(gòu)建設(shè)置述雾,并找到代碼簽名權(quán)限構(gòu)建設(shè)置。
- 在項(xiàng)目編輯器中導(dǎo)航到
- 展開(kāi)構(gòu)建設(shè)置兼丰,以便您可以查看所有構(gòu)建配置的值玻孟。對(duì)于每個(gè)構(gòu)建配置,單擊
plus(+)
按鈕添加條件設(shè)置鳍征。
- 展開(kāi)構(gòu)建設(shè)置兼丰,以便您可以查看所有構(gòu)建配置的值玻孟。對(duì)于每個(gè)構(gòu)建配置,單擊
- 從每個(gè)條件設(shè)置中的彈出按鈕中黍翎,選擇任何
macOS
,然后編輯條件設(shè)置的值艳丛,以引用新的Mac Catalyst
授權(quán)文件的名稱(chēng)匣掸。
- 從每個(gè)條件設(shè)置中的彈出按鈕中黍翎,選擇任何
在創(chuàng)建開(kāi)發(fā)證書(shū)時(shí),自動(dòng)簽名可能會(huì)失敗氮双,并出現(xiàn)“出于安全原因禁止此請(qǐng)求”的錯(cuò)誤碰酝。(50964225)
解決方法:您的帳戶(hù)可能已經(jīng)達(dá)到了證書(shū)限制。在Safari中查看您的Apple Developer
帳戶(hù)戴差,并撤銷(xiāo)您沒(méi)有使用的任何開(kāi)發(fā)證書(shū)送爸,然后在Xcode
中再次嘗試。存檔操作不會(huì)對(duì)Swift包中的命令行可執(zhí)行產(chǎn)品進(jìn)行代碼簽名暖释。(48717735)
解決方法:在發(fā)布存檔的可執(zhí)行文件之前袭厂,使用codesign
工具手動(dòng)簽署它們。使用
bot
編輯器的sign
選項(xiàng)卡手動(dòng)安裝的Mac
配置文件將使用錯(cuò)誤的文件擴(kuò)展名安裝球匕,這會(huì)導(dǎo)致集成失敗纹磺。(47636041)
解決方法:登錄到bot用戶(hù)的帳戶(hù),并在~/Library/MobileDevice/Provisioning profiles
目錄中重命名受影響的概要文件亮曹。
已解決的問(wèn)題
修正了一個(gè)導(dǎo)致應(yīng)用內(nèi)購(gòu)買(mǎi)內(nèi)容包無(wú)法構(gòu)建的代碼簽名問(wèn)題橄杨。(50736776)
解決了
Xcode
在為iOS Developer University
程序的成員創(chuàng)建新的簽名證書(shū)時(shí)拋出錯(cuò)誤的問(wèn)題秘症。(50640287)解決了
Xcode
錯(cuò)誤報(bào)告的一個(gè)問(wèn)題:當(dāng)上傳到App Store
時(shí),“團(tuán)隊(duì)沒(méi)有iTunes
連接訪(fǎng)問(wèn)”讥珍。(39292849)
Simulator
新特性
模擬器可以根據(jù)當(dāng)前電源自動(dòng)選擇
macOS GPU
历极。當(dāng)你的Mac
連接到AC電源
時(shí),使用的是分立GPU
衷佃。當(dāng)你的Mac使用電池供電時(shí)趟卸,使用的是集成GPU。您可以通過(guò)導(dǎo)航到File > GPU
選擇在模擬器中更改策略氏义。(53032365)simctl
現(xiàn)在可以覆蓋iOS設(shè)備
的狀態(tài)欄值锄列。例如,要設(shè)置時(shí)間和電池惯悠,請(qǐng)使用:
xcrun simctl status_bar <device> override --time "9:41" --batteryState charged --batteryLevel 100
有關(guān)全部選項(xiàng)邻邮,請(qǐng)參見(jiàn)xcrun simctl help status_bar。(51697821)
當(dāng)運(yùn)行在
macOS 10.15
上時(shí)克婶,Metal
可以在iOS 13和tvOS 13模擬器
中使用。Metal
代碼在主機(jī)Mac GPU
上執(zhí)行情萤,比模擬的OpenGL代碼
要快得多鸭蛙。SceneKit api, CoreAnimation
和其他系統(tǒng)框架抽象gpu
之間的許多差異,減少需要特定于設(shè)備的代碼。當(dāng)運(yùn)行在早期版本的macOS
上或在沒(méi)有Metal
的環(huán)境中筋岛,模擬器將繼續(xù)使用呈現(xiàn)的OpenGL
軟件娶视。如果你的Mac
有多個(gè)GPU
,使用模擬器中的文件菜單來(lái)選擇使用哪個(gè)GPU
睁宰。如果正在使用的GPU
變得不可用肪获,任何使用它的模擬器都會(huì)自動(dòng)關(guān)閉。(18430676)默認(rèn)情況下柒傻,
Xcode
不再創(chuàng)建所有可用的iOS模擬器設(shè)備
孝赫。而是創(chuàng)建一組最常用的設(shè)備。要?jiǎng)?chuàng)建其他設(shè)備(或一個(gè)設(shè)備的多個(gè)實(shí)例)红符,請(qǐng)打開(kāi)設(shè)備窗口寒锚,選擇模擬器,單擊+按鈕违孝,輸入一個(gè)名稱(chēng),并選擇相關(guān)的設(shè)備類(lèi)型和OS版本泳赋。(49428617)CAMetalLayer
可以在iOS 13和tvOS 13模擬器
中使用雌桑。(45101325)iOS 13、watchOS 6和tvOS 13模擬器
現(xiàn)在都有一個(gè)dyld共享緩存
祖今。這改進(jìn)了模擬器的啟動(dòng)時(shí)間校坑,減少了模擬器進(jìn)程使用的打開(kāi)文件句柄的數(shù)量拣技。如果您報(bào)告了一個(gè)您認(rèn)為與共享緩存相關(guān)的問(wèn)題,請(qǐng)包括一個(gè)simctl診斷
和使用DYLD_PRINT_LIBRARIES=1
啟動(dòng)程序的輸出耍目。(13632739)simctl
現(xiàn)在接受運(yùn)行時(shí)名稱(chēng)的簡(jiǎn)短別名膏斤。這意味著你可以用像simctl create 'iPhone X' iOS13
這樣的命令創(chuàng)建一個(gè)新的iPhone X模擬器。(41089607)對(duì)于
headless
和continuous integration
場(chǎng)景邪驮,您可以配置CoreSimulator
莫辨,通過(guò)設(shè)置默認(rèn)的write com.apple
來(lái)跳過(guò)虛擬幀緩沖區(qū)中的合成操作。CoreSimulator FramebufferServerRendererPolicy to none
毅访。在這種模式下沮榜,無(wú)法查看模擬器,simctl io
也無(wú)法截屏或錄制視頻喻粹。(48264341)沒(méi)有
CFBundleVersion
的包是無(wú)效的蟆融,不能正確地安裝在設(shè)備或模擬器上。CoreSimulator
現(xiàn)在可以在流程的早期檢查和拒絕這些包守呜,并提供更清晰的錯(cuò)誤消息型酥。(49892531)模擬器停靠圖標(biāo)現(xiàn)在包括一個(gè)菜單查乒,以快速啟動(dòng)模擬器弥喉。(43067512)
模擬器的文件菜單現(xiàn)在包括一個(gè)
GPU
選擇菜單,以控制哪個(gè)GPU
是使用金屬支持模擬器和合成模擬器的虛擬幀緩沖區(qū)侣颂。如果在選中可用項(xiàng)時(shí)使用外部GPU
档桃,則在外部GPU連接后啟動(dòng)的任何模擬器都使用外部GPU
。如果外部GPU
斷開(kāi)連接憔晒,任何使用它的模擬器都會(huì)自動(dòng)關(guān)閉藻肄。對(duì)這些設(shè)置的更改僅在模擬器啟動(dòng)時(shí)生效。當(dāng)這個(gè)設(shè)置被改變時(shí)拒担,模擬器已經(jīng)啟動(dòng)嘹屯,繼續(xù)使用之前選擇的GPU
,直到它們重新啟動(dòng)从撼。(46134036)游戲控制器輸入在iOS模擬器中可用州弟。(50082777)
已知問(wèn)題
- 模擬器不分配負(fù)載,如果多個(gè)
GPU
在一個(gè)系統(tǒng)匹配選擇的GPU策略低零。只使用MTLCopyAllDevices()
返回的第一個(gè)匹配的GPU婆翔。(50608554)
解決方案:通過(guò)將模擬器窗口定位在與模擬器使用的GPU
直接連接的顯示器上,您可能會(huì)看到更高的性能掏婶,這避免了跨GPU復(fù)制
啃奴。
請(qǐng)注意:與任何利用
GPU
的應(yīng)用程序一樣,外部連接顯示的性能行為也會(huì)隨著工作負(fù)載的不同而變化雄妥。
通過(guò)
xcrun simctl io <UDID> recordVideo
對(duì)iOS 13最蕾、tvOS 13和watchOS 6
模擬器進(jìn)行視頻錄制依溯,將返回一個(gè)錯(cuò)誤而不是錄制視頻。(50625716)watchOS模擬器
不支持冷啟動(dòng)上的斷點(diǎn)瘟则。(51148192)
解決方法:在啟動(dòng)正在調(diào)試的應(yīng)用程序之前黎炉,完全啟動(dòng)模擬器。
已解決的問(wèn)題
自動(dòng)紙板同步功能現(xiàn)在正確的所有模擬器運(yùn)行
iOS 11.1
和更新醋拧。(53231481)
在模擬器中獲取粘貼板后立即調(diào)用Send Pasteboard
將不再導(dǎo)致設(shè)備不可用慷嗜。(52866417)修正了用
simctl
覆蓋細(xì)胞欄的能力。(51698044)模擬器中的旋轉(zhuǎn)設(shè)備自動(dòng)選項(xiàng)與
iOS 13模擬器兼容
趁仙。(51147050)當(dāng)模擬器不是
macOS Catalina 10.15
上的前臺(tái)應(yīng)用程序時(shí)洪添,模擬器將游戲控制器事件交付給模擬設(shè)備。(51759699)修正了一個(gè)導(dǎo)致模擬器停止向屏幕顯示幀更新的問(wèn)題雀费。(51993678)
模擬器正確地顯示了注冊(cè)時(shí)的
Touch ID > Enrolled
的復(fù)選標(biāo)記干奢。(50553667)主機(jī)和模擬設(shè)備之間的紙板自動(dòng)同步的行為是正確的。(46686100)
Safari
對(duì)模擬器的共享行為正確盏袄。(49331693,49416352)解決了
IOSurface實(shí)例
在macOS 10.14.5及更早版本模擬器
進(jìn)程中的泄漏問(wèn)題忿峻。(50880827)iCloud同步
可以在iOS模擬器中使用。(50924245)當(dāng)TVOut被配置為“斷開(kāi)連接”時(shí)辕羽,
iOS 13模擬器
沒(méi)有連接模擬顯示逛尚。(50829453)iOS模擬器
的顏色匹配金屬的內(nèi)容,以顯示的顏色空間刁愿。(50625671)解決了一個(gè)使用
Metal
的核心圖像著色器無(wú)法在ios13模擬器上運(yùn)行的問(wèn)題绰寞,并禁用了錯(cuò)誤的“Metal DAG編譯器”
∠晨冢”(51521248)游戲控制器與
iPad模擬器
可以正常工作滤钱。(51034639)解決了在
iOS 13之前運(yùn)行iOS版本的模擬器
設(shè)備無(wú)法正確呈現(xiàn)顯示的問(wèn)題。(50963987)IOSurface
現(xiàn)在可以在ios13脑题、watchOS 6和tvOS 13模擬器
中運(yùn)行件缸。(11051639)模擬器中播放音頻的應(yīng)用程序也不再自動(dòng)打開(kāi)麥克風(fēng)輸入。(32406954)
將刪除
simctl
列表JSON
輸出中以前不推薦的可用性字段叔遂。使用isAvailable Boolean
字段確定可用性他炊。(45142676)ATSC
紋理格式支持透明地解壓他們?cè)?CPU
上,然后再上傳到macOS GPU
已艰。(51347811)
Source Control
新特性
現(xiàn)在您可以從一個(gè)分支到另一個(gè)分支進(jìn)行更改痊末。(18285039)
克隆新存儲(chǔ)庫(kù)時(shí),現(xiàn)在可以從可用分支列表中選擇要簽出的分支哩掺。(41122122)
使用新的源代碼控制文件檢查器舌胶,您可以瀏覽當(dāng)前分支文件的完整歷史記錄。日志檢查器適用于所有文件類(lèi)型疮丛,包括接口構(gòu)建器文檔幔嫂。(45109443)
現(xiàn)在,您可以從源代碼控制導(dǎo)航器中隱藏更改和管理隱藏誊薄。此外履恩,Xcode還提供自動(dòng)保存和恢復(fù)源代碼控制操作的更改,比如從存儲(chǔ)庫(kù)中提取更改呢蔫。(8797804)
源代碼控制作者現(xiàn)在可以在每個(gè)編輯器的基礎(chǔ)上使用切心。(45108927)
已知問(wèn)題
當(dāng)在已啟用rebase的分支上執(zhí)行
Pull in Xcode
時(shí),工作表不會(huì)自動(dòng)關(guān)閉片吊。(50377240)如果文件已重命名绽昏,則從源代碼控制日志檢查器中查看文件修訂的更改可能會(huì)失敗。(49673170)
對(duì)于位桶云或位桶服務(wù)器托管的帳戶(hù)俏脊,不支持在
Add Package assistant
中過(guò)濾包全谤。(47290085)GitLab或GitLab
自管理托管帳戶(hù)不支持在Add Package assistant
中過(guò)濾包。(47290125)當(dāng)使用xcodebuild時(shí)爷贫,解析包可能無(wú)法驗(yàn)證
SSH指紋
认然,除非指紋已經(jīng)在~/.ssh / known_hosts
文件中。(50686014)
解決方案:在使用xcodebuild
之前漫萄,通過(guò)SSH
到主機(jī)并從命令行驗(yàn)證指紋卷员,或者手動(dòng)將主機(jī)指紋添加到~/.ssh / known_hosts
文件中。
已解決的問(wèn)題
改進(jìn)了在項(xiàng)目導(dǎo)航器中選擇
Package.swift
文件時(shí)顯示源代碼控制信息的功能腾务。(50696823)如果作者信息尚未在
Preferences > Source Control
控制中為Git配置泥耀,則使用rebase進(jìn)行提取將不再失敗鸿吆。(48680076)解決了托管帳戶(hù)提供者(如
GitHub 和 BitBucket
)在添加帳戶(hù)表中不可用,并且以前添加的帳戶(hù)將被禁用的問(wèn)題。(47645098)解決
Xcode
中的源代碼控制操作出現(xiàn)“無(wú)法與助手應(yīng)用程序通信”對(duì)話(huà)框的問(wèn)題扫皱。(47227781)修復(fù)了個(gè)人、組織和星型存儲(chǔ)庫(kù)加載時(shí)間較長(zhǎng)的性能問(wèn)題你雌。(48620126)
解決了添加
GitHub
帳戶(hù)后厚棵,來(lái)自GitHub
的用戶(hù)頭像并不總是加載的問(wèn)題。(48698029)修正了代碼評(píng)審編輯器中某些源編輯器菜單選項(xiàng)不可用的錯(cuò)誤箫津。(48774008)
Source Editor
新特性
語(yǔ)義突出顯示狭姨、代碼完成、實(shí)時(shí)問(wèn)題苏遥、符號(hào)搜索和跳轉(zhuǎn)到定義現(xiàn)在都支持
Metal
著色語(yǔ)言饼拍。(45144204)通過(guò)單擊源代碼控制更改欄并選擇顯示或隱藏更改,介紹了在源代碼編輯器中查看內(nèi)聯(lián)代碼差異的功能田炭。(49073551)
增加新的高對(duì)比度(暗)主題和高對(duì)比度(光)主題师抄。還為標(biāo)記、類(lèi)型聲明和其他聲明添加了新設(shè)置教硫。(50036007)
為
Swift文件
中的聲明添加了專(zhuān)用的語(yǔ)法著色叨吮,可以在類(lèi)型聲明和其他聲明下的首選項(xiàng)>字體和顏色中自定義辆布。宣言著色C-family
語(yǔ)言不支持。(10342935)Xcode
的源代碼編輯器現(xiàn)在支持拼寫(xiě)檢查茶鉴。(32062963)Xcode 11
的源代碼編輯器引入了該文件的一個(gè)迷你映射锋玲。這個(gè)迷你地圖包括Mark:的可讀文本,高亮顯示的帶有錯(cuò)誤和警告的行涵叮,源代碼控制更改惭蹂,斷點(diǎn),以及高亮顯示的Find results
割粮。迷你地圖在默認(rèn)情況下是啟用的盾碗,并且可以在每個(gè)編輯器中關(guān)閉。(35939517)在文檔注釋和游樂(lè)場(chǎng)標(biāo)記中為標(biāo)記添加語(yǔ)法高亮顯示舀瓢。您可以在文檔標(biāo)記下的首選項(xiàng)>字體和顏色中自定義散文字體廷雅,并在首選項(xiàng)>文本編輯>顯示中自定義分隔符外觀(guān)。(42941263)
Toggle
注釋支持多個(gè)游標(biāo)氢伟。(44319433)拖放文本時(shí)榜轿,行與行之間會(huì)留出空間,以便更容易地看到文本將被拖放到何處朵锣。拖拽完整行時(shí)谬盐,
Xcode
只允許在其他行之間拖放。(44735912)編輯器允許分層代碼折疊诚些。(47502128)
代碼折疊支持方括號(hào)和圓括號(hào)飞傀。(50460404)
// MARK: comments和#pragma MARK
指令現(xiàn)在在編輯器中畫(huà)一條分隔線(xiàn)。顯示標(biāo)記分隔符的首選項(xiàng)位于首選項(xiàng)>文本編輯>顯示>顯示標(biāo)記分隔符诬烹。(7299224)
已解決的問(wèn)題
NSProgressIndicator 對(duì)象現(xiàn)在保存構(gòu)建和運(yùn)行時(shí)在檢查器中配置的當(dāng)前值砸烦。(43257511)
c++操作符重載
顯示在跳轉(zhuǎn)欄中。(50841460)解決了Xcode在運(yùn)行時(shí)使用鍵盤(pán)快捷鍵錯(cuò)誤打開(kāi)助理編輯器的問(wèn)題绞吁。(37995114)
為
// MARK: comments和#pragma
標(biāo)記指令添加了專(zhuān)用的語(yǔ)法著色幢痘,您可以在首選項(xiàng)>字體和顏色>標(biāo)記中定制它們。(22114159)您可以命令單擊Swift操作符來(lái)使用
Quick Help
并跳轉(zhuǎn)到Definition
家破。(32695862)解決了在Objective-C中編輯未關(guān)閉塊時(shí)可能發(fā)生的問(wèn)題颜说。(48201424)
解決了代碼完成將廢棄符號(hào)排序在非廢棄符號(hào)之前的問(wèn)題。(38422586)
解決了刪除文本時(shí)代碼完成行出現(xiàn)空的問(wèn)題汰聋。(48621410)
解決了在使用
throw
或noexcept
子句時(shí)沒(méi)有正確解析c++函數(shù)
的問(wèn)題门粪。(37682611)在輸入時(shí),可訪(fǎng)問(wèn)性縮放焦點(diǎn)現(xiàn)在跟隨源編輯器中的插入點(diǎn)烹困。(32775118)
當(dāng)在源編輯器中逐行移動(dòng)時(shí)玄妈,
VoiceOver
不會(huì)重復(fù)上一行。(34334763)VoiceOver
在源編輯器中有用于方法、錯(cuò)誤拟蜻、警告绎签、斷點(diǎn)和標(biāo)記的轉(zhuǎn)子,這使得搜索和移動(dòng)到與錯(cuò)誤或其他轉(zhuǎn)子項(xiàng)對(duì)應(yīng)的代碼行非常容易瞭郑。(34493080)VoiceOver
文本屬性現(xiàn)在包括源編輯器中一行代碼的空格數(shù)辜御、制表符數(shù)、縮進(jìn)級(jí)別和行號(hào)屈张。(34607795)當(dāng)讀入源編輯器時(shí),
VoiceOver
不再?lài)@占位符標(biāo)記說(shuō)額外的字符袱巨,并說(shuō)它們是占位符阁谆。(44941610)解決了
c++原始字符串
沒(méi)有正確突出顯示的問(wèn)題。(10770485)解決了
c++類(lèi)聲明
在使用限定名愉老、模板或多重繼承時(shí)無(wú)法正確解析的問(wèn)題场绿。(11286215)解決了在跳轉(zhuǎn)欄中沒(méi)有顯示嵌套在函數(shù)或方法中的本地類(lèi)的問(wèn)題。(13337638)
解決了
c++ 11
后置返回類(lèi)型不能正確識(shí)別的問(wèn)題嫉入。(13634062)解決了
c++
類(lèi)型枚舉沒(méi)有正確解析的問(wèn)題焰盗。(13693443)改進(jìn)了使用可用性宏和屬性的聲明的解析。(14569168)
解決了不識(shí)別帶單引號(hào)的
c++
數(shù)字文字的問(wèn)題咒林。(18121031)解決了結(jié)構(gòu)體成員函數(shù)沒(méi)有正確解析的問(wèn)題熬拒。(27946356)
解決了在跳轉(zhuǎn)欄中沒(méi)有正確顯示枚舉聲明的問(wèn)題。(32518576)
改進(jìn)了
JavaScript
中類(lèi)和函數(shù)的識(shí)別垫竞。(42537831)解決了返回枚舉類(lèi)型的函數(shù)沒(méi)有正確解析的問(wèn)題澎粟。(46164630)
解決了無(wú)符號(hào)和長(zhǎng)整數(shù)文字語(yǔ)法顏色不正確的問(wèn)題。(47138177)
更新
JavaScript
語(yǔ)法高亮顯示欢瞪,包括ECMAScript 6
關(guān)鍵字活烙。(47354463)修正了雙擊
c++析構(gòu)函數(shù)
名會(huì)導(dǎo)致
Static Analyzer
新特性
靜態(tài)分析器檢查
mach
服務(wù)器例程中是否違反了MIG
調(diào)用約定。這些違反行為可能會(huì)導(dǎo)致使用后免費(fèi)的漏洞遣鼓。(35380337)靜態(tài)分析器檢查是否違反了
IOKit和libkern
引用計(jì)數(shù)規(guī)則啸盏。(46357478)靜態(tài)分析器檢查是否違反了
DriverKit
引用計(jì)數(shù)規(guī)則。這些違規(guī)行為可能導(dǎo)致泄漏和免費(fèi)使用后的問(wèn)題骑祟。(50349513)
Swift
新特性
結(jié)構(gòu)和枚舉的
@frozen屬性
現(xiàn)在可用回懦。(36597490)結(jié)構(gòu)的成員式初始化器現(xiàn)在為包含默認(rèn)表達(dá)式的變量提供默認(rèn)值。(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)
- 現(xiàn)在可以使用類(lèi)型別名聲明
@autoclosure參數(shù)
曾我。(SR-2688, 50560849)
class Foo {
typealias FooClosure = () -> String
func fooFunction(closure: @autoclosure FooClosure) {}
}
- 類(lèi)中使用@objc屬性聲明的方法現(xiàn)在可以返回Self粉怕。(SR-7601, 50560991)
class MyClass: NSObject {
@objc func clone() -> Self { return self }
}
鍵路徑表達(dá)式現(xiàn)在可以包含對(duì)元組元素的引用。(50562288)
接受Any類(lèi)型值的單參數(shù)函數(shù)不再優(yōu)先于其他函數(shù)抒巢。(50562333)
現(xiàn)在已經(jīng)完全實(shí)現(xiàn)了元組類(lèi)型之間的轉(zhuǎn)換贫贝。在此之前,下面將診斷一個(gè)錯(cuò)誤。(SR-2672, 12340004)
let values: (Int, Int) = (10, 15)
let converted: (Int?, Any) = values
- 現(xiàn)在可以聲明和使用類(lèi)型下標(biāo)稚晚,就像類(lèi)型屬性和類(lèi)型方法一樣崇堵。通過(guò)對(duì)下標(biāo)聲明應(yīng)用靜態(tài)或(在類(lèi)中)類(lèi)修飾符來(lái)聲明。(SE-0254, 16555559)
// 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"
類(lèi)型下標(biāo)還可以與動(dòng)態(tài)成員查找一起使用客燕,以創(chuàng)建動(dòng)態(tài)類(lèi)型屬性鸳劳。
// 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"
- 指定 Optional.none 與同樣具有
none
大小寫(xiě)的枚舉進(jìn)行比較,或?qū)⒋祟?lèi)枚舉與Optional
進(jìn)行比較∫泊辏現(xiàn)在沒(méi)有一個(gè)會(huì)發(fā)出警告赏廓。這樣的表達(dá)式會(huì)產(chǎn)生歧義,因?yàn)榫幾g器會(huì)選擇可選的傍妒。none
超過(guò)您自己的枚舉定義的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
編譯器會(huì)提供一個(gè)警告颤练,并提供一個(gè)修復(fù)程序來(lái)用 Optional替換.none
既忆。沒(méi)有或 Foo
。沒(méi)有人能解決這種含糊不清的問(wèn)題嗦玖。
- 函數(shù)現(xiàn)在可以通過(guò)聲明它所遵循的協(xié)議來(lái)隱藏它們的具體返回類(lèi)型患雇,而不是指定確切的返回類(lèi)型:
func makeACollection() -> some Collection {
return [1, 2, 3]
}
調(diào)用該函數(shù)的代碼可以使用協(xié)議的接口,但不能看到底層類(lèi)型宇挫。(SE-0244, 40538331)
- 枚舉現(xiàn)在可以匹配一個(gè)可選枚舉苛吱,而不需要' ?”“在圖案的末尾。(SR-7799, 41494702)
enum Foo { case zero, one }
let foo: Foo? = .zero
switch foo {
case .zero: break
case .one: break
case .none: break
}
- 現(xiàn)有的
@dynamicMemberLookup
屬性現(xiàn)在支持鍵入鍵路徑實(shí)現(xiàn)捞稿。(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
- 現(xiàn)在又谋,您可以使用Self表達(dá)式來(lái)引用結(jié)構(gòu)、枚舉和類(lèi)聲明中最內(nèi)層的標(biāo)稱(chēng)類(lèi)型娱局。例如彰亥,這個(gè)結(jié)構(gòu)中的兩個(gè)方法聲明是等價(jià)的:
struct Box<Value> {
func transform1() -> Self { return self }
func transform2() -> Box<Value> { return self }
}
在類(lèi)中,
Self
和前面一樣是Self
值的動(dòng)態(tài)類(lèi)型衰齐。聲明類(lèi)型中對(duì)Self的現(xiàn)有限制仍然適用;也就是說(shuō)任斋,Self
只能作為方法的返回類(lèi)型出現(xiàn)。然而耻涛,Self現(xiàn)在可以在方法體中無(wú)限制地使用废酷。(SE-0068, 17892696)Array 和 ContiguousArray 現(xiàn)在都有 init(unsafeUninitializedCapacity:initializingWith:) 初始化器,它提供對(duì)數(shù)組未初始化存儲(chǔ)的訪(fǎng)問(wèn)抹缕。(21880692)
實(shí)現(xiàn)了更徹底的檢查澈蟆,以確定轉(zhuǎn)義閉包的限制,這些閉包捕獲的
in-out
參數(shù)或noescape
類(lèi)型的值卓研。雖然大多數(shù)代碼不受影響趴俘,但在某些情況下睹簇,Swift 5.0
編譯器接受的代碼違反了這些限制。(SR-8546, SR-9043, 43355341)Swift 5.0
編譯器錯(cuò)誤接受無(wú)效代碼的一個(gè)例子是@escaping
閉包寥闪,它調(diào)用一個(gè)本地函數(shù)太惠,該函數(shù)從外部范圍引用in-out
參數(shù):
struct BadCaptureExample {
var escapingClosure: () -> ()
mutating func takesInOut(_ x: inout Int) {
func localFunction() {
x += 1
}
escapingClosure = { localFunction() }
}
}
- 編譯器現(xiàn)在通過(guò)指出
localFunction()
捕獲x是無(wú)效的來(lái)正確診斷上面的代碼,因?yàn)?localFunction()
是從@ escape
閉包引用的疲憋。 - 這還解決了編譯器錯(cuò)誤地將某些代碼診斷為無(wú)效的某些情況凿渊,而實(shí)際上并沒(méi)有發(fā)生違反限制的情況。例如:
func takesNoEscape(_ fn: () -> ()) {
func localFunction() {
fn()
}
{ localFunction() }()
}
已知問(wèn)題
- 如果類(lèi)型與其包含的模塊具有相同的名稱(chēng)缚柳,則從模塊接口導(dǎo)入該模塊可能會(huì)失敗埃脏。(19481048,48445154)
解決方法:重命名類(lèi)型,使其不再與模塊名稱(chēng)沖突秋忙。
已解決的問(wèn)題
不再允許重復(fù)元組元素標(biāo)簽剂癌,因?yàn)檫@會(huì)導(dǎo)致不正確的行為。(SR-8974, 45218256)
以下內(nèi)容現(xiàn)在被診斷為錯(cuò)誤:
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)
只要內(nèi)部標(biāo)簽不同翰绊,在聲明函數(shù)和下標(biāo)時(shí)仍然可以使用重復(fù)標(biāo)簽。例如:
func foo(bar x: Int, bar y: Int) {}
subscript(a x: Int, a y: Int) -> Int {}
帶有不透明返回類(lèi)型的聲明需要在iOS 13旁壮、macOS 10.15监嗜、watchOS 6或tvOS 13中使用Swift 5.1運(yùn)行時(shí),由Swift編譯器強(qiáng)制執(zhí)行抡谐。(50731151)
在macOS 10.9之前廢棄的API在編譯時(shí)只需要應(yīng)用程序擴(kuò)展安全的API構(gòu)建設(shè)置就會(huì)正確地顯示為不可用裁奇。(51417764)
從終端啟動(dòng)時(shí),Swift REPL工作正常麦撵。(51374106)
如果類(lèi)型使用不透明的返回類(lèi)型來(lái)滿(mǎn)足協(xié)議的關(guān)聯(lián)類(lèi)型要求刽肠,并且關(guān)聯(lián)類(lèi)型在另一個(gè)泛型聲明中按名稱(chēng)引用,則編譯器不再崩潰免胃。(50509030)
靜態(tài)庫(kù)現(xiàn)在總是在鏈接期間全部強(qiáng)制加載音五,以修復(fù)與請(qǐng)求失敗相關(guān)的運(yùn)行時(shí)錯(cuò)誤。(47598583)
弱的和無(wú)主的存儲(chǔ)特性不再抑制自動(dòng)合成的 Equatable 或者 Hashable羔沙。(sr - 9827, 50566123)
如果崩潰日志中的符號(hào)沒(méi)有正確解調(diào)躺涝,運(yùn)行quick -demangle命令并傳入崩潰日志的內(nèi)容。(34920390)
SwiftUI
已知問(wèn)題
在沒(méi)有為
OTHER_SWIFT_FLAGS
設(shè)置-DDEBUG
設(shè)置的項(xiàng)目中定義的預(yù)覽提供程序扼雏,如果在畫(huà)布中沒(méi)有顯示調(diào)試坚嗜,則將其封裝在#中。這發(fā)生在Objective-C
應(yīng)用中诗充,Objective-C
從未指定OTHER_SWIFT_FLAGS
苍蔬。(51138834)
解決方法:從PreviewProvider
聲明周?chē)鷦h除#if DEBUG和#endif
。使用
Xcode 11 beta 5
蝴蜓,預(yù)覽只在macOS Catalina 10.15 beta 5
上可用碟绑,而且只有Xcode 11 beta 5
支持在macOS Catalina 10.15 beta 5
上預(yù)覽。(52059562)軟件鍵盤(pán)不會(huì)出現(xiàn)在預(yù)覽中。(35615536)
使用與系統(tǒng)類(lèi)型相同的名稱(chēng)命名類(lèi)型可能導(dǎo)致預(yù)覽失敗蜈敢。(51531683)
解決方法:不要對(duì)您的類(lèi)型使用與系統(tǒng)類(lèi)型相同的名稱(chēng)辜荠。在運(yùn)行設(shè)備預(yù)覽時(shí)進(jìn)行的代碼更改可能會(huì)在應(yīng)用程序重新啟動(dòng)時(shí)短暫顯示主屏幕。(48208765)
在實(shí)時(shí)預(yù)覽中無(wú)法縮放抓狭。(51183125)
解決方法:退出活動(dòng)模式或使用畫(huà)布或編輯器菜單中的縮放控件伯病。iOS、tvOS和watchOS
的靜態(tài)預(yù)覽不支持SceneKit否过、MapKit和Metal視圖
午笛,在呈現(xiàn)更新時(shí)會(huì)出現(xiàn)延遲。(50965310)如果現(xiàn)有視圖位于視圖生成器中條件語(yǔ)句的頂層苗桂,則導(dǎo)致容器插入現(xiàn)有視圖和容器中的新同級(jí)的拖放操作將不起作用药磺。例如,不能在 Text 周?chē)鷦h除 HStack 或者 VStack煤伟。(50300406):
var body: some View {
VStack {
if true {
Text("Hello World")
}
}
}
解決方法:將現(xiàn)有視圖嵌入到容器中——無(wú)論是在畫(huà)布中還是在源編輯器中——然后將新視圖放入容器中癌佩。
包中的預(yù)覽總是執(zhí)行活動(dòng)方案的完整構(gòu)建。(51030302)
將 Text 修飾符拖放到畫(huà)布中已經(jīng)具有 View 修飾符(例如 frame(width:height:alignment:) 的文本上便锨,將導(dǎo)致編譯錯(cuò)誤围辙。(50712235)
解決方法:重新排序修飾符,使特定于文本的修飾符出現(xiàn)在任何視圖修飾符之前放案。HStack 和 VStack檢查器不支持自定義布局指南姚建。(49710501)
解決方法:使用source editor
作為自定義布局指南。屬性檢查器不允許指定靈活的幀吱殉。(51310989)
第一次在畫(huà)布中進(jìn)入實(shí)時(shí)預(yù)覽模式可能需要幾秒鐘掸冤。(46505269)
在文件之間切換時(shí),預(yù)覽可能會(huì)失敗或更新不正確友雳。(50841287)
解決方法:在活動(dòng)文件的末尾添加新行稿湿,然后單擊出現(xiàn)的橫幅中的Resume
。
屬性檢查器在畫(huà)布關(guān)閉后仍然可見(jiàn)沥阱,停留在最后選定的項(xiàng)上缎罢,并且不起作用。(50958316)
解決方法:重新打開(kāi)畫(huà)布或切換到其他文件考杉。預(yù)覽不適用于啟用了應(yīng)用沙箱的
macOS應(yīng)用程序
策精。(51088926)對(duì)于符合 PreviewProvider 的私有和文件私有結(jié)構(gòu),預(yù)覽不會(huì)出現(xiàn)在畫(huà)布中崇棠。(47011316)
解決方法:從符合要求的類(lèi)型中刪除私有或文件私有訪(fǎng)問(wèn)控制咽袜。第一次在運(yùn)行目標(biāo)選擇器中切換設(shè)備時(shí),預(yù)覽可能需要幾秒鐘更新枕稀。(47562171)
在從
Scheme
彈出菜單切換使用運(yùn)行目標(biāo)的設(shè)備時(shí)询刹,預(yù)覽可能會(huì)暫時(shí)顯示不正確的設(shè)備chrome
谜嫉。(49496647)畫(huà)布不支持焦點(diǎn)。(50275735)
在畫(huà)布中無(wú)法撤消凹联。(49651153)
解決方法:將源編輯器放在焦點(diǎn)位置沐兰,并在那里執(zhí)行撤消操作。
解決問(wèn)題
預(yù)覽檢查器使用系統(tǒng)字體呈現(xiàn)蔽挠。(52473187)
修正了當(dāng)你試圖在你的
Mac
電腦上顯示多個(gè)設(shè)備的預(yù)覽時(shí)可能發(fā)生的崩潰住闯。修正了檢查包含
SwiftUI
視圖的視圖層次結(jié)構(gòu)時(shí)可能發(fā)生的崩潰。(52857304)修正了啟用或禁用實(shí)時(shí)預(yù)覽時(shí)可能發(fā)生的崩潰澳淑。(52083572)
解決了
Apple Watch
預(yù)覽在黑色背景上顯示黑色文本的問(wèn)題比原。(51676439)預(yù)覽繼續(xù)工作后,更改文件名杠巡,而不需要切換到另一個(gè)文件和切換回來(lái)量窘。(51708183)
預(yù)覽尊重導(dǎo)入周?chē)臈l件編譯塊。例如氢拥,您可以有條件地導(dǎo)入由
#if canImport(UIKit)
保護(hù)的UIKit
蚌铜。(51545182)應(yīng)用于類(lèi)型和方法的可用性屬性受到預(yù)覽的尊重。當(dāng)部署目標(biāo)不包括
SwiftUI
(即部署目標(biāo)在iOS 13嫩海、macOS 10.15厘线、watchOS 6或tvOS 13之前
)時(shí),您現(xiàn)在可以使用 UIViewRepresentable 實(shí)例和 UIViewControllerRepresentable 實(shí)例來(lái)查看視圖和視圖控制器的預(yù)覽出革。為此,將適當(dāng)?shù)目捎眯詫傩蕴砑拥揭晥D可表示類(lèi)型和 PreviewProvider 一致性中渡讼,如@available(ios13.0骂束, *)
。(51493428)命名顏色在屬性檢查器中是可編輯的成箫。(51287606)
使用 withAnimation(::) 來(lái)更改根視圖中的狀態(tài)展箱,可以在實(shí)時(shí)預(yù)覽中正確顯示。(51164838)
動(dòng)畫(huà)在live預(yù)覽中保持在它們的上下文中蹬昌,live預(yù)覽與設(shè)備上的預(yù)覽匹配混驰。(50708417)
解決了在運(yùn)行目的地選擇器中選擇與Apple Watch配對(duì)的設(shè)備時(shí),
watchOS
預(yù)覽無(wú)法工作的問(wèn)題皂贩。(50861269)修正了在顏色檢查器中反復(fù)選擇指定顏色時(shí)可能發(fā)生的崩潰栖榨。(51304163)
當(dāng)運(yùn)行在
Apple Watch Series 3
上時(shí),使用SwiftUI構(gòu)建的應(yīng)用程序不再表現(xiàn)得像運(yùn)行在Apple Watch Series 4
上一樣明刷。(50678109)
SwiftUI Tutorials
已知問(wèn)題
- 如果使用
Xcode 11 beta 5
中包含的sdk
婴栽,使用 Path 結(jié)構(gòu)可能會(huì)導(dǎo)致應(yīng)用程序崩潰。因此辈末,您可能無(wú)法成功地遵循 Drawing Paths and Shapes 教程中的步驟愚争。(53523206)
Swift Packages
已知問(wèn)題
沒(méi)有顯式的命令行選項(xiàng)來(lái)使用
xcodebuild
構(gòu)建Swift包
映皆。(45575820)
解決方法:運(yùn)行xcodebuild -workspace
。在包含Package.swift
文件的目錄中轰枝。獨(dú)立軟件包不支持預(yù)覽捅彻。(51072409)
Swift
包不支持在目標(biāo)中添加資源文件——比如圖像、故事板或音頻鞍陨。(SR-2866, 33389529)Swift
包不支持處理本地化的字符串文件步淹。(48190792)在項(xiàng)目中移動(dòng)本地包將把它轉(zhuǎn)換為文件夾引用。(50320585)
連接到
app
及其測(cè)試目標(biāo)的打包產(chǎn)品會(huì)產(chǎn)生重復(fù)的符號(hào)湾戳。(50348625)
解決方法:只在應(yīng)用程序或測(cè)試目標(biāo)中鏈接包產(chǎn)品贤旷。為Swift包自動(dòng)生成的方案在包添加或刪除目標(biāo)時(shí)不會(huì)自動(dòng)更新。(50586754)
解決方案:從包目錄中的swiftpm/xcode/xcshareddata/xcscheme
目錄中刪除該方案砾脑,然后重新打開(kāi)包幼驶,自動(dòng)生成一個(gè)新方案。如果在方案中選擇的構(gòu)建配置未命名為
Debug或Release
韧衣,則使用調(diào)試條件設(shè)置的Swift
包構(gòu)建的目標(biāo)盅藻。(50696202)從工作區(qū)中刪除本地包引用將從工作區(qū)中的所有
Xcode
目標(biāo)中刪除其包產(chǎn)品,即使對(duì)該本地包的其他引用仍然保留在工作區(qū)中畅铭。(50706448)
*解決方案8:將包產(chǎn)品引用添加回相關(guān)目標(biāo)氏淑。不支持預(yù)覽
Swift
包中的代碼,這些代碼沒(méi)有被活動(dòng)方案引用硕噩,也沒(méi)有被鏈接到應(yīng)用程序目標(biāo)假残,并且顯示錯(cuò)誤消息。(50909384)新創(chuàng)建的
Swift
包的測(cè)試目標(biāo)無(wú)法為watchOS
構(gòu)建炉擅,因?yàn)?XCTest
在watchOS
上不可用辉懒。(51054894)
解決方法:用條件編譯語(yǔ)句包圍watchOS
測(cè)試目標(biāo)中引用XCTest
框架或其api的任何代碼。例如:
#if !os(watchOS)
// XCTest code
#endif
已解決的問(wèn)題
在沒(méi)有搜索結(jié)果時(shí)谍失,在
Add package Dependency
工作表中搜索包存儲(chǔ)庫(kù)眶俩。(51223367)無(wú)論在
package . Swift
清單文件中聲明的目標(biāo)的名稱(chēng)與該目標(biāo)的目錄名在大小寫(xiě)上不同,代碼補(bǔ)全都適用于Swift包目標(biāo)
快鱼。(49648458)在
Swift包的c族
目標(biāo)中添加新文件不會(huì)創(chuàng)建擴(kuò)展名為. Swift的文件
颠印。(31395814)使用
unsafeFlags
構(gòu)建設(shè)置的Swift包不能作為依賴(lài)項(xiàng)使用。(50354068)當(dāng)使用
Swift包
管理器構(gòu)建Swift包
測(cè)試時(shí)抹竹,XCTUnwrap API
是可用的线罕。(51115369)如果本地包覆蓋了項(xiàng)目中的遠(yuǎn)程包,并且本地包具有無(wú)法滿(mǎn)足的包依賴(lài)關(guān)系,那么
Xcode
將不再崩潰。(51183216)
Testing
新特性
支持編寫(xiě)與SwiftUI視圖交互的XCTest UI測(cè)試棚辽。(35224680)
測(cè)試計(jì)劃是一種管理哪些測(cè)試運(yùn)行以及這些測(cè)試如何運(yùn)行的新方法。方案可以引用多個(gè)測(cè)試計(jì)劃窿凤,并為自動(dòng)化定義一個(gè)默認(rèn)的測(cè)試計(jì)劃仅偎。一個(gè)新的測(cè)試計(jì)劃編輯器支持定義測(cè)試配置,它可以從計(jì)劃本身繼承共享設(shè)置雳殊。在Xcode中運(yùn)行測(cè)試現(xiàn)在可以跨所有測(cè)試配置運(yùn)行測(cè)試橘沥。更新源編輯器測(cè)試菱形以支持在單個(gè)配置中運(yùn)行測(cè)試,并更新測(cè)試導(dǎo)航器以允許選擇活動(dòng)測(cè)試計(jì)劃夯秃。更新測(cè)試報(bào)告以支持顯示測(cè)試計(jì)劃生成的結(jié)果座咆。(16138582)
XCTest使用新的度量(度量:options:block:)方法和相關(guān)方法增強(qiáng)了性能測(cè)試功能。metrics參數(shù)需要符合XCTMetric協(xié)議的對(duì)象列表仓洼。您可以實(shí)現(xiàn)自己的自定義度量介陶,或者使用 XCTClockMetric , XCTOSSignpostMetric , XCTCPUMetric , XCTMemoryMetric , 和 XCTStorageMetric。(49430032)下面顯示了一個(gè)示例性能測(cè)試測(cè)量的
CPU
和內(nèi)存影響排序列表:
func testExample() {
// Measures the CPU and memory impact of sorting the input list.
measure(metrics: [XCTCPUMetric(), XCTMemoryMetric()]) {
sortedList = qsort(list: self.fiftyNumbersFrom0to100)
}
}
- 添加了一個(gè)斷言函數(shù)
XCTUnwrap
色建,用于Swift測(cè)試
哺呜。XCTUnwrap
斷言可選變量的值不是nil,如果斷言成功箕戳,則返回其值某残。這消除了將 XCTAssertNotNil(::file:line:) 與展開(kāi)值或處理測(cè)試其余部分的條件鏈接相結(jié)合的需要。例如:
func testFirstNameNotEmpty() throws {
let forenames: [String] = customer.forenames
let firstName = try XCTUnwrap(forenames.first)
XCTAssertFalse(firstName.isEmpty)
}
XCTUnwrap
是一個(gè)拋出斷言陵吸,最好在拋出測(cè)試方法中使用玻墅,如上例所示。(30667432)
- 除了原始報(bào)告和存檔文件外壮虫,
xccov
現(xiàn)在還支持直接傳遞結(jié)果包澳厢。例如,要查看結(jié)果包中的覆蓋率報(bào)告囚似,可以調(diào)用xccov
赏酥,如下所示:xccov視圖——report /path/to/result_bundle.xcresult
。(50500789)
*結(jié)果包的格式在 Xcode 11
中更改谆构。結(jié)果包是 Xcode 11
使用 xcresult
文件擴(kuò)展名生成的資產(chǎn),該擴(kuò)展名包含有關(guān)構(gòu)建框都、測(cè)試搬素、代碼覆蓋率等信息。使用 Xcode 10
或更早版本生成的任何 xcresult
文件都不能被Xcode 11讀取魏保。通過(guò)傳遞 -resultBundlePath ./Example
可以生成一個(gè)結(jié)果包熬尺。將 xcresult
轉(zhuǎn)換為xcodebuild
調(diào)用和示例。然后可以在 Xcode
中打開(kāi) xcresult
谓罗。Xcode 還在派生數(shù)據(jù)中創(chuàng)建結(jié)果包粱哼。當(dāng)前的結(jié)果包版本號(hào)是3,可以通過(guò)傳遞
xcodebuild標(biāo)志-resultBundleVersion 3來(lái)指定檩咱。版本3是
Xcode 11中的缺省版本揭措,但是仍然建議自動(dòng)化顯式地傳遞該標(biāo)志胯舷,以便將來(lái)任何可能成為缺省版本的版本都不會(huì)對(duì)現(xiàn)有工具造成問(wèn)題“砗可以使用
xcresulttool檢查結(jié)果包桑嘶。可以使用
xcrun xcresulttool get——format JSON——path ./Example導(dǎo)出結(jié)果包根對(duì)象的
JSON表示躬充√佣ィ可以通過(guò)添加標(biāo)記
——id REF. xcresulttool來(lái)導(dǎo)出
xcresult和任何由
JSON輸出中找到的引用標(biāo)識(shí)的嵌套對(duì)象。
xcresulttool還使用xcrun xcresulttool formatDescription` 提供其格式的描述充甚。(41633595)
如果一個(gè)測(cè)試在多個(gè)目標(biāo)上運(yùn)行以政,并且其中一些目標(biāo)(而不是其他目標(biāo))失敗,那么測(cè)試報(bào)告將顯示一個(gè)摘要伴找,描述測(cè)試失敗的目標(biāo)盈蛮,例如“在運(yùn)行
iOS 12.0
的iPad
目標(biāo)上失敗”。(49164968)當(dāng)通過(guò)源編輯器測(cè)試菱形運(yùn)行測(cè)試或測(cè)試類(lèi)時(shí)疆瑰,選擇單擊菱形將顯示一個(gè)彈出窗口眉反,該彈出窗口允許在活動(dòng)測(cè)試計(jì)劃中的特定配置下運(yùn)行測(cè)試(如果測(cè)試計(jì)劃具有多個(gè)配置)。(46348663)
當(dāng)查看在多個(gè)目標(biāo)上運(yùn)行的測(cè)試的測(cè)試報(bào)告時(shí)(例如
Xcode
服務(wù)器集成穆役,或者xcodebuild
調(diào)用使用多個(gè)目標(biāo)說(shuō)明符生成的結(jié)果包)寸五,現(xiàn)在可以根據(jù)目標(biāo)過(guò)濾顯示的結(jié)果。單擊范圍欄中的devices
按鈕將顯示運(yùn)行測(cè)試的目標(biāo)列表耿币,包括僅隱藏或顯示感興趣的目標(biāo)的功能梳杏。此外,現(xiàn)在可以通過(guò)范圍欄中的“混合”按鈕過(guò)濾到僅在一個(gè)目標(biāo)上失敗但在另一個(gè)目標(biāo)上成功的測(cè)試淹接。(48981032)xcodebuild
生成的結(jié)果包現(xiàn)在可以在Xcode中直接共享十性、雙擊和打開(kāi)。(38620469)介紹了對(duì)
Mac Catalyst
應(yīng)用程序編寫(xiě)基于xctest
測(cè)試的支持塑悼。(41530313)默認(rèn)情況下劲适,為新創(chuàng)建的測(cè)試計(jì)劃啟用了代碼覆蓋率。(48749597)
在
macOS
的UI
測(cè)試中厢蒜,鼠標(biāo)移動(dòng)(包括對(duì)hover API
的調(diào)用以及對(duì)click霞势、scroll
和其他API
的調(diào)用)將在屏幕上逐步移動(dòng)光標(biāo),就像用戶(hù)在實(shí)際交互中所做的那樣斑鸦,而不是立即將光標(biāo)移動(dòng)到最終位置愕贡。這可能會(huì)給嚴(yán)重依賴(lài)鼠標(biāo)懸停行為的UI測(cè)試帶來(lái)問(wèn)題。(49430331)為測(cè)試計(jì)劃修改
.xctestrun
文件格式巷屿,以包含關(guān)于如何在計(jì)劃中執(zhí)行每個(gè)測(cè)試配置的信息固以。當(dāng)運(yùn)行xcodebuild build-for-testing
計(jì)劃使用測(cè)試計(jì)劃,生成.xctestrun
文件使用FormatVersion 2
和有一個(gè)修改后的屬性列表結(jié)構(gòu)。.xctestrun
文件生成的計(jì)劃,不要使用測(cè)試計(jì)劃繼續(xù)使用FormatVersion 1和xcodebuild test-without-building
接受要么版本嘱巾。(46346053)測(cè)試計(jì)劃編輯器中的代碼覆蓋率設(shè)置不支持選擇用于收集代碼覆蓋率的單個(gè)目標(biāo)憨琳。如果測(cè)試計(jì)劃是通過(guò)將一個(gè)計(jì)劃轉(zhuǎn)換為使用測(cè)試計(jì)劃來(lái)創(chuàng)建的诫钓,并且該計(jì)劃在轉(zhuǎn)換時(shí)選擇了單獨(dú)的代碼覆蓋率目標(biāo),那么這些目標(biāo)將保留在最終的測(cè)試計(jì)劃中栽渴,但是不能在計(jì)劃中編輯尖坤。(50502861)
xcodebuild
增強(qiáng)了支持測(cè)試計(jì)劃的新選項(xiàng)。使用new -showTestPlans
選項(xiàng)列出與方案關(guān)聯(lián)的所有測(cè)試計(jì)劃闲擦。使用新的-testPlan <name>
選項(xiàng)指定與用于測(cè)試或構(gòu)建測(cè)試的方案相關(guān)聯(lián)的測(cè)試計(jì)劃慢味。如果沒(méi)有指定-testPlan <name>
,xcodebuild
測(cè)試將使用方案的默認(rèn)測(cè)試計(jì)劃墅冷。(46346197)Xcode 11
引入了在Xcode
本地化目錄中自動(dòng)包含來(lái)自XCTest
的屏幕截圖的選項(xiàng)纯路。在測(cè)試計(jì)劃或scheme
編輯器中啟用本地化截圖,然后在導(dǎo)出本地化時(shí)檢查“包含截圖”寞忿。(28656175)
已知問(wèn)題
-
XCTUnwrap API
只在主要測(cè)試包目標(biāo)中可用驰唬,而在其他庫(kù)或框架中不可用。(51117167)
解決方案:將任何使用XCTUnwrap的庫(kù)代碼移動(dòng)到您的主測(cè)試包目標(biāo)腔彰,或者在受影響的目標(biāo)中手動(dòng)修改以下構(gòu)建設(shè)置:
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"
- 測(cè)試計(jì)劃編輯器允許啟用某些消毒劑和內(nèi)存診斷的組合叫编,這些組合是不兼容的,不應(yīng)該同時(shí)啟用霹抛。例如搓逾,
Address Sanitizer
和保護(hù)Malloc
,或者Address Sanitizer
和Thread Sanitizer
杯拐。(49739613)
*解決方案 :不要將銷(xiāo)毀者和不兼容的內(nèi)存診斷設(shè)置組合在一起配置測(cè)試計(jì)劃霞篡。如果測(cè)試計(jì)劃的共享設(shè)置在測(cè)試配置中繼承了不兼容的設(shè)置,則手動(dòng)覆蓋該設(shè)置端逼,以禁用受影響的測(cè)試配置朗兵。
已解決的問(wèn)題
Xcode
中的結(jié)構(gòu)化構(gòu)建日志,以及獨(dú)立的結(jié)果包顶滩,再次顯示了每個(gè)步驟的持續(xù)時(shí)間余掖。(48126238)修正了一個(gè)阻止UI測(cè)試運(yùn)行器發(fā)出任意網(wǎng)絡(luò)請(qǐng)求的問(wèn)題。(52856418)
修正了一個(gè)問(wèn)題礁鲁,該問(wèn)題阻止啟動(dòng)UI測(cè)試目標(biāo)盐欺,該目標(biāo)的名稱(chēng)包含一個(gè)連字符,后面直接跟一個(gè)數(shù)字救氯。(51857798)
編輯引用與包含活動(dòng)方案的項(xiàng)目不同的項(xiàng)目中的測(cè)試目標(biāo)的測(cè)試計(jì)劃,將不再導(dǎo)致這些測(cè)試目標(biāo)被標(biāo)記為缺失歌憨。(50148373)
您可以在包解析期間在包含
Swift包
的工作區(qū)中運(yùn)行測(cè)試着憨。(48719922)在正確啟用代碼覆蓋率的情況下運(yùn)行測(cè)試,將在模擬器和
Mac
上生成iOS應(yīng)用程序
的覆蓋率報(bào)告务嫡。修正了
Mac上iPad
應(yīng)用程序UI測(cè)試
的一個(gè)問(wèn)題甲抖,當(dāng)試圖與表格視圖單元內(nèi)的元素交互時(shí)漆改,可能會(huì)出現(xiàn)hit測(cè)試錯(cuò)誤而失敗。(50745246)一個(gè)方案的測(cè)試操作中的并行執(zhí)行復(fù)選框現(xiàn)在對(duì)
Swift包
的測(cè)試目標(biāo)啟用了准谚。(47564543)解決了啟動(dòng)測(cè)試操作時(shí)檢查設(shè)備可用性時(shí)可能發(fā)生的崩潰挫剑。(51245770)
解決了在模擬器中無(wú)法為
Mac Catalyst
應(yīng)用程序或iOS應(yīng)用程序
生成代碼覆蓋率報(bào)告的問(wèn)題。(51241460)XCUIElement 上的 exists 屬性現(xiàn)在在XCTest無(wú)法檢查應(yīng)用程序UI的情況下(例如柱衔,由于應(yīng)用程序的主線(xiàn)程沒(méi)有響應(yīng))產(chǎn)生測(cè)試失敗樊破,而不是在這些情況下返回false。(37359653)
單元測(cè)試發(fā)現(xiàn)機(jī)制對(duì)于大型項(xiàng)目更有效唆铐。重新打開(kāi)項(xiàng)目后哲戚,測(cè)試導(dǎo)航器的填充速度更快。(32567980)
TestFlight
已知問(wèn)題
- 運(yùn)行
tvOS 12.3或更早版本的TestFlight應(yīng)用程序
分發(fā)到Apple TV 4K
上艾岂,適用于部署目標(biāo)在tvOS 13之前的tvOS應(yīng)用程序
顺少。(53017497)
這一篇 Xcode 11 Beta 5 翻譯 官方文檔
長(zhǎng)夜漫漫,獨(dú)自一人翻譯王浴。如有紕漏敬請(qǐng)?jiān)彛ㄍ瑫r(shí)還望指出脆炎,及時(shí)更改,以惠后人)
氓辣。內(nèi)容更新角度是空前的秒裕,我相信正式版來(lái)臨必將震撼整個(gè)互聯(lián)網(wǎng)行業(yè)!通過(guò)現(xiàn)在 Xcode 11 出現(xiàn)之后的 SwiftUI + Combine 就知道筛婉!身處互聯(lián)這個(gè)利益的漩渦之中簇爆,我們唯一能做的就是與時(shí)俱進(jìn)就問(wèn)此時(shí)此刻還有誰(shuí)?45度仰望天空爽撒,該死入蛆!我這無(wú)處安放的魅力!