iOS 11.0原文 :https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Articles/iOS_11_0.html#//apple_ref/doc/uid/TP40017637-SW1
本文總結了iOS 11中推出的主要開發者相關功能,該功能在當前運送的iOS設備上運行。該文章還列出了更詳細描述新功能的文檔。
有關已知問題的最新新聞和信息,請參見https://developer.apple.com/ios/download上的發行說明。
有關新API的完整列表,請從API參考文檔的任何頁面頂部的下拉列表中選擇顯示API更改。
要了解Swift的新功能,請參閱Swift語言和Swift編程語言(Swift 4)。
一般
iOS 11.0中的新功能 - 支持二進制(非文本)條形碼。
爲AV Foundation,Core Image和SiriKit添加了API,以支持檢測,解碼和創建具有二進制內容的條形碼。
CIBarcodeDescriptor爲Core Image添加了一個新的條形碼描述符對象,以提供與AV Foundation和Vision API的互操作性。
iOS 11.0中的新功能 - MusicKit。
MusicKit可讓您的應用訪問完整的Apple Music目錄以及用戶的圖書館。
StoreKit中增加和更新了功能,用於檢索客戶端令牌和店面標識符。
在Media Player中添加和更新功能以啓用播放。
在Apple Music訂戶設置流程中添加了自定義消息的顯示。
應用框架
iOS 11.0中的新功能 - 支持拖放功能。
在iOS中拖放可讓用戶將項目從一個位置拖動到另一個位置;在單個應用程序或不同的應用程序中。
功能增加,將視圖識別爲拖動源和目的地。
添加了可定製的預覽和定製動畫。
欲瞭解更多信息,請參閱拖放的文件中。
iOS 11.0中新增 - 瀏覽本地和iCloud文檔。
添加了視圖控制器,用於瀏覽存儲在本地和雲中的文檔。有關更多信息,請參閱UIDocumentBrowserViewController和UIDocumentBrowserTransitionController。
添加了UIDocumentBrowserAction一個用於爲文檔瀏覽器創建自定義操作的對象。
添加了FileProvider和FileProviderUI框架,用於添加第三方存儲服務。
有關詳細信息,請參閱將文檔瀏覽器添加到應用程序。
改進的動態類型支持。
添加了UIFontMetrics一個用於創建根據當前選定的文本大小進行縮放的自定義字體的對象。
更新自動佈局,以便在基準錨點是使用系統間距的約束的一部分時,根據字體大小動態調整間距。
添加了一個屬性來保存PDF資源的矢量數據,以實現平滑縮放。這可以用於顯示較大版本的條形條和分段控制項,以及調整圖像大小以匹配用戶的文字大小。在資產目錄中,爲PDF選擇“保留矢量數據”以啓用縮放。
添加UIAccessibilityContentSizeCategoryImageAdjusting了一種用於縮放輔助功能文本大小的圖像的協議。
改進了動態類型的自動佈局支持。
更新NSLayoutXAxisAnchor並NSLayoutYAxisAnchor提供使用兩個錨之間的系統間距創建約束的工廠方法。以前,創建這樣的約束的唯一方法是使用-Visual Format語言中的dash()。
添加了一個選項,NSLayoutFormatOptions用於創建使用基線到基線間距的Visual Format語言字符串。
更新UIStackView以實現系統間距和定製間距。
更新的文本內容可以與App Password自動填充一起使用。
添加username和password屬性UITextContentType。
對鍵盤擴展的更新。
已添加selectedText,該屬性UITextDocumentProxy返回文檔中當前選定的文本。
已添加documentIdentifier,其屬性UITextDocumentProxy指定用戶是否導航到新的文本小部件。
添加hasFullAccess了UIInputViewController檢查鍵盤權限的屬性。
添加needsInputModeSwitchKey了UIInputViewController控制輸入模式切換鍵顯示的屬性。
在“設置”中添加新的系統權限,以便應用程序訪問附加的鍵盤擴展。
改進的可用存儲空間API。
URL爲不同的使用場景添加了新的鍵。
volumeAvailableCapacityForImportantUsageKey返回用戶明確要求的操作的總字節數,或者是您的應用程序正常運行所必需的。
volumeAvailableCapacityForOpportunisticUsageKey返回可用於存儲非必需項目的總字節數,例如預先下載的用於用戶可能使用或可能不會被使用的性能的內容。
圖形和遊戲
iOS 11.0中新增 - 支持增強現實。
添加了ARKit框架,結合了設備運動跟蹤,攝像頭場景捕獲,高級場景處理和顯示便利,簡化了建立AR體驗的任務。
iOS 11.0中的新功能 - 高性能圖像分析。
添加了用於檢測面部,條形碼,文本,圖像水平和矩形區域的Vision框架。
與Core ML集成以在圖像上運行自定義模型。
跟蹤視頻中的對象。
包括對圖像註冊的支持。
新的iOS 11.0 - 爲Core Image編寫自定義圖像混合內核。
新增CIBlendKernel,一種特殊類型的CIColorKernel混和兩個圖像(通過支持CIRenderDestination和CIImageAccumulator)。
添加init(functionName:fromMetalLibraryData:)到CIKernel使用Metal編寫內核以從現代語言功能和減少的編譯時間中受益。
iOS 11.0中的新功能 - 輕量級渲染目標。
添加了CIRenderDestination一個對象,用於創建在工作發出後返回給調用者的渲染器。功能包括爲不同目的地指定渲染器的所有目標屬性IOSurface,包括CVPixelBuffer,GL紋理,金屬紋理和內存。
擴展ReplayKit框架。
更新RPScreenRecorder了屏幕捕獲和後置攝像頭支持。
增加了新的核心圖像過濾器CITextImageGenerator,CIColorCurves,CILabDeltaE,CIBokehBlur,CIMinMaxRed,和CIBicubicScaleTransform。
金屬2
Metal 2包含Metal,Metal Shading Language和Metal Performance Shaders框架的重要補充和更新。以下項目表示更新發生的位置:
- MTL:金屬框架中的更新。
- MSL:金屬着色語言中的更新。
- MPS:金屬性能着色器框架中的更新。
MPS:金屬2新 - 跨平臺金屬性能着色器支持。
所有的Metal Performance Shaders功能都可以在iOS 11.0,tvOS 11.0和macOS 10.13中使用。
MPS:iOS 11.0新增 - 神經網絡支持。
增加了對金屬性能着色器框架的神經網絡的支持。
添加了圖表,以提供更高級別的API,以簡化神經網絡的創建,包括允許狀態在神經網絡中的節點之間傳輸的對象。
增加捲積神經網絡(CNN),以支持使用先前獲得的培訓數據實施和運行深入學習。
增加了反覆神經網絡來實現圖像和矩陣的推理。
iOS 11.0中的新功能 - 間接參數緩衝區。
將資源分組爲間接參數緩衝區(IAB)以減少CPU開銷。
MSL:添加了[[id(n)]]屬性限定符以識別IAB結構中的資源。
MTL:添加了MTLIndirectArgumentEncoder將資源編碼到IAB中的協議。
MTL:iOS 11.0新增 - 可編程樣本。
在渲染到多采樣渲染目標時配置樣本的位置。
更新了MTLRenderPassDescriptor類以設置和獲取渲染過程的樣本位置。
MSL:iOS 11.0中的新功能 - 統一類型。
添加uniform類型以聲明爲執行繪圖或調度調用的圖形或計算功能的所有線程統一的變量。
MSL:iOS 11.0新增 - 採樣器陣列。
添加array類型以存儲採樣器數組。
MPS:添加了新的過濾器。
添加了圖像統計信息的過濾器,例如計算圖像區域的均值和方差。
添加了將兩個圖像組合在一起的過濾器,例如元素總和和查找關鍵點。
添加用於矩陣分解和求解的濾波器,例如使用Cholesky或LU(Lower Upper)分解的分解。
MSL:擴展功能專業化。
擴展[[color(n)]]和[[raster_order_group(index)]]屬性限定符來處理函數常量。
用於圖形,計算或用戶功能的結構的成員可以與函數常量一起使用。
MTL:擴展頂點格式。
增加了新MTLVertexFormat的小格式,如價值觀char,short和half。
向iOS添加了雙源混合支持。
將固定功能混合操作的兩個源顏色輸出到單個渲染目標。
MSL:向[[index(i)]]屬性限定符添加一個新的[[color(n)]]屬性限定符以輸出第二個源顏色。
MTL:更新MTLBlendFactor爲在第二個源顏色上運行。
應用服務
iOS 11.0新功能 - 支持機器學習模式。
添加了核心ML框架,輕鬆將機器學習模型集成到應用程序中。
iOS 11.0中新增 - SiriKit支持視覺代碼。
向Sirkit添加了視覺代碼域,以支持顯示交換付款和聯繫信息的視覺代碼。
iOS 11.0中新增 - SiriKit支持筆記和待辦事項列表。
向SiriKit添加了列表和Notes域,以支持使用Siri添加備註,與待辦事項列表進行交互,以及與提醒進行交互。
在SiriKit域中增加了意圖。
將騎行取消和反饋添加到騎行預訂域。
增加了匯款和搜索帳戶到付款域。
iOS 11.0中的新功能 - 查找設備的標題。
添加heading到CMDeviceMotion,返回相對於的方位角度的屬性CMAttitudeReferenceFrame。返回的值是以度爲單位的標題double。當參考幀爲xArbitraryZVertical或時,返回負值xArbitraryCorrectedZVertical。
iOS 11.0中的新功能 - 多路徑TCP。
增加了對使用多個接口(如Wi-Fi和Cellular)的URLSessionConfiguration支持,通過擴展支持IETF RFC 6824中定義的多路徑TCP傳輸單個數據流。有關更多信息,請參閱URLSessionConfiguration.MultipathServiceType。
iOS 11.0中新增 - DNS代理。
向網絡擴展框架添加了新的DNS代理應用程序擴展類型。
Apple Pay中增強的最終用戶交易流程。
添加PKPaymentError到PassKit,用於詳細報告用戶運輸和付款信息中的錯誤以及授權錯誤的結構。開發人員可以使用該信息來提供自定義的錯誤字符串。
更新處理程序方法PKPaymentAuthorizationControllerDelegate以接收PKPaymentError。
更新PKPaymentRequest使用PKContactField的聯繫信息。
添加supportedCountries到PKPaymentRequest用於指定支持的交易的國家/地區。
即使電子錢包中沒有支持付款方式,您也可以提供付款按鈕。Apple Pay現在提供付款而不離開您的應用程序,然後返回結帳。
iOS 11.0中的新功能 - 在App Store上推廣應用內購買。
開發人員可以在App Store產品頁面上宣傳多達20個應用內購買。客戶可以在App Store上開始購買,然後被帶到應用程序來完成交易。
增加paymentQueue(_:shouldAddStore:for:)了一種SKPaymentTransactionObserver促進應用內購買的新方法。應用程序需要支持此代理,以便在App Store上顯示促銷的應用內購買。
iOS 11.0中的新功能 - 實時消息。
添加MSMessageLiveLayout了一個新的消息佈局,用於顯示可以顯示動態內容的實時消息,如遊戲。每個實時消息都有自己的MSMessagesAppViewController,並且可以在屏幕上同時存在多個活動的實時消息。
以下代碼顯示將消息流添加到消息流中,包括不支持實時消息的設備的備用佈局。
守衛讓對話= activeConversationelse{
fatalError(“無活動對話”)
}
letalternateLayout = MSMessageTemplateLayout()
alternateLayout.image = UIImage(命名爲“SuperSweetGameImage”)
alternateLayout.caption =“$(\(conversation.localParticipantIdentifier))想玩一個遊戲!”
letlayout = MSMessageLiveLayout(alternateLayout:alternateLayout)
letmessage = MSMessage()
message.layout =佈局
conversation.insert(message,completionHandler:nil)
HomeKit的增強觸發器。
增強觸發器的基於時間的條件。HMSignificantTimeEvent指定日出和日落的偏移量。HMCalendarEvent指定日期和時間。HMDurationEvent指定時間間隔。
添加HMCharacteristicThresholdRangeEvent以支持跟蹤一個範圍內的配件的狀態,例如當溫度在68和72度之間時運行自動化。
添加HMPresenceEvent用於添加基於用戶的存在或不存在的條件。
更新HMEventTrigger以啓用多次重複的事件。
通過實施來接收家庭中心狀態的更新home:didUpdateHomeHubState:。
更新了MapKit,以更清楚地顯示開發人員數據。
添加mutedStandard了一種強調開發人員數據的新地圖顯示模式。
添加屬性以自定義註釋在碰撞發生時的行爲。開發人員使用的組合displayPriority,collisionMode以及clusteringIdentifier對影響哪個註解持續顯示在地圖上。
媒體和網絡
新的iOS 11.0 - 支持高效率視頻編碼(HEVC)。
高效率視頻編碼(HEVC)是視頻編碼的新標準,在相同的視覺質量水平下,提供比H.264更好的壓縮效果。
使用AV基金會播放包含HEVC編碼曲目的電影,並捕獲和導出視頻。
VideoToolbox客戶端可以對HEVC視頻比特流進行編碼和解碼。
iOS 11.0新功能 - 支持高效圖像格式(HEIF)。
高效圖像格式(HEIF)是一種新的圖像壓縮標準,可將相同級別圖像質量的當前數據壓縮比加倍。
添加了照片和核心圖像框架的功能,以顯示,編碼和導出HEIF圖像。
iOS 11.0中的新功能 - 支持捕獲和操作深度數據,以及增強的照片捕獲。
向AV Foundation添加了對象,用於捕獲和表示深度數據。欲瞭解更多信息,請參見AVCaptureDepthDataOutput,AVDepthData以及相關的API。
添加了AVCapturePhoto一個封裝捕獲的照片的信息並支持HEVC和HEIC編碼圖像的對象。
更新AVCapturePhotoOutput以提供更多信息。
iOS 11.0新功能 - 自動存儲管理。
增加了HTTP實時流資源的自動存儲管理AVAssetDownloadTask。當需要空間時,系統可以自動清除過期或不必要的下載。使用優先級來影響清除策略。
iOS 11.0中新增 - AirPlay 2。
AV基礎中某些音頻播放界面改善了AirPlay的可靠性。要利用增加的可靠性,播放音頻AVPlayer或新的AVSampleBufferAudioRenderer對象。
爲AirPlay添加了多個揚聲器支持,以支持長形音頻,如音樂和播客。要將應用程序標記爲呈現長格式音頻,請調用該AVAudioSession方法setCategory(_:mode:routeSharingPolicy:options:)並將AVAudioSessionRouteSharingPolicyLongForm其用作參數值。
FairPlay流密鑰管理。
改進了功能AVContentKeySession。使用AVContentKeySession啓動獨立播放或媒體資產的下載的內容密鑰請求。符合AVContentKeyRecipient協議的對象(例如AVURLAsset)可被添加爲接收者AVContentKeySession以獲得對現有內容密鑰的訪問併發起新的內容密鑰請求
增加了更多的實時照片調整。
添加了一個稱爲效果的實時照片調整的集合,將實時照片呈現爲循環,反彈或長時間曝光。與常規實時照片不同,Loop和Bounce視頻將以連續的循環播放。
添加了playbackStyle一個新的屬性,標識如何向PHAsset用戶呈現。
系統
iOS 11.0中的新功能 - 熱點配置。
添加了熱點配置的網絡擴展。有關更多信息,請參閱NEHotspotConfiguration。
更新了核心藍牙框架。
增加了對L2CAP頻道的支持。
擴展會話恢復可以在藍牙復位和設備重新啓動時工作。
更新了核心藍牙框架,以適應iOS,tvOS,watchOS和macOS,以及基於平臺的標記呼叫可用性。
iOS 11.0中的新功能 - 檢測NFC標籤並讀取包含NDEF數據的消息。
增加了核心NFC,一種用於閱讀NFC數據交換格式(NDEF)的近場通信(NFC)標籤和數據的新框架。
APFS現在是默認文件系統。
APFS現在對區分大小寫的文件系統有不規範化的支持。