
Today Apple released iOS 13.1 Beta 2 to Developers.
I report mainly on macOS, but maybe I could expand a bit. Michael Tsai –@mjtsai (Follow him) took a look at my latest article “What’s new in macOS Catalina 10.15 Beta 7” He asked if anyone was doing this for Xcode. I followed up with his request and posted mrmacintosh.com/whats-new-in-xcode-11-beta-7-11m392r
With that said, I am going to try documenting iOS patch change notes. Maybe this will end up being useful to iOS Developers. As Michael said if Apple would organize the patch notes with every new build version, I wouldn’t have to do this.
This article is meant to save you time going through the notes to find what is new and what is still leftover from the last beta. I went through both iOS 13.1 Beta 1 and the new iOS 13.1 Beta 2 (17A5831c) release notes to find all the changes. I also included the entire patch notes list as an archive. When Apple releases the Beta 3 patch notes the previous patch notes are overwritten and taken down.
Summary of New iOS 13.1 Beta 2 Patch Notes
- 0 New Warnings
- 3 New Features
- 0 New Resolved issues
- 3 New Known Issues
- 0 New Deprecations
A Full List of changes is listed below, along with the full patch notes list.
Apple’s iOS Beta Developer Documentation
developer.apple.com/documentation/ios_ipados_release_notes
How to Download iOS 13.1 Beta
- Sign up as an Apple Developer (Yearly $100)
- Contact your Apple SE to join AppleSeed for IT
iOS 13.1 Beta 2 Patch Notes Changes
1. New Features in iOS 13.1 Beta 2
SwiftUI – NSManagedObject now conforms to ObservableObject. The new @FetchRequestproperty wrapper can drive views from the results of a fetch request, and managedObjectContext is now included in the environment. (50280673)
Swift UI – BindableObject is replaced by the ObservableObject protocol from the Combine framework. (50800624)You can manually conform to ObservableObject by defining an objectWillChangepublisher that emits before the object changes. However, by default, ObservableObjectautomatically synthesizes objectWillChange and emits before any @Publishedproperties change.// RoomStore.swift import Foundation class RoomStore: ObservableObject { @Published var rooms: [Room] = [] } struct Room: Identifiable { var id: UUID var name: String var capacity: Int var hasVideo: Bool } // ContentView.swift import SwiftUI struct ContentView: View { @ObservedObject var store: RoomStore var body: some View { NavigationView { List(store.rooms) { room in RoomCell(room: room) } .navigationBarTitle(“Rooms”) } } } @ObjectBinding is replaced by @ObservedObject.
SwiftUI – The RangeReplaceableCollection protocol is extended to include a remove(atOffsets:) method and the MutableCollection protocol is extended to include a move(fromOffsets:toOffset:) method. Each new method takes IndexSetinstances that you use with the onMove(perform:) and onDelete(perform:)modifiers on ForEach views. (51991601)
2. New Resolved issues in iOS 13.1 Beta 2
None
3. New Known Issues in iOS 13.1 Beta 2
iCloud – You might be unable to delete the Recovered Files folder in On My iPad/iPhone. (54785368)Workaround: Back up your device, erase it, restore from backup, then try again.
Sidecar – If you update to iPadOS 13.1 beta 2, you will be unable to use Sidecar until a future version of macOS Catalina beta is released. (54903543)
SwiftUI – Apps containing SwiftUI inside a Swift package might not run on versions of iOS earlier than iOS 13. (53706729)Workaround: When back-deploying to an OS which doesn’t contain the SwiftUI framework, add the -weak_framework SwiftUI flag to the Other Linker Flags setting in the Build Settings tab. See Frameworks and Weak Linking for more information on weak linking a framework. This workaround doesn’t apply when using dynamically linked Swift packages which import SwiftUI.
4. New Deprecations in iOS 13.1 Beta 2
None
Full Archive of iOS 13.1 Beta 2 Release Notes.
Overview
The iOS & iPadOS 13 SDK provides support for developing apps for iPhone, iPad, and iPod touch devices running iOS & iPadOS 13. The SDK comes bundled with Xcode 11 beta available from Beta Software Downloads. For information on the compatibility requirements for Xcode 11, see Xcode 11 Beta 7 Release Notes.
Warning
If your watch is running watchOS 6 beta, you must update it to watchOS 6 beta 2 or later before updating to iOS 13 beta 7 or later, otherwise your watch will no longer be able to connect to your phone. (52854192)
General
Known Issues
- Snapshots for apps that use Metal might have an unexpected appearance in the App Switcher. (53121694)
Deprecations
- The
UIApplicationExitsOnSuspendkey is no longer supported in iOS & iPadOS 13. Update your apps to handle modern multitasking. (43958234)
Audio
New Features
- Voice Processing mode can now be enabled on
AVAudioEngine. (50906329) - New
AVAudioNodetypes can be used to wrap a user-defined block for sending or receiving data in real time. - A new method is available for an
AVAudioEngine-based app to retrieve a list of all nodes attached to anAVAudioEngineinstance. - A new rendering mode in
AVAudioEnvironmentNodeselects the best spatial audio rendering algorithm automatically based on the output device. - A new
AVAudioSessionproperty allows system sounds and haptics to play while the session actively uses audio input. - A new enumeration,
AVAudioSession.PromptStyle, informs apps which style of voice prompt they should play based on other audio activity in the system. AVAudioSession.RouteSharingPolicynow permits apps to specify route-sharing policies so their audio and video routes to the same location as AirPlay.- Audio Unit Extensions now support user presets that are available across all host applications.
Deprecations
- The OpenAL framework is deprecated and remains present for compatibility purposes. Transition to
AVAudioEnginefor spatial audio functionality. AUGraphis deprecated in favor ofAVAudioEngine.- Inter-App audio is deprecated. Use Audio Units for this functionality moving forward.
- Carbon component-based Audio Units are deprecated and support will be removed in a future release.
- Legacy Core Audio HAL audio hardware plug-ins are no longer supported. Use audio server plug-ins for audio drivers moving forward.
Audio Sharing
New Features
- Audio sharing is compatible with AirPods (1st generation or later) and PowerBeats Pro. iPhone 8 or later, iPad Pro 12.9-inch (2nd generation or later), iPad Pro 11-inch, iPad Pro 10.5-inch, iPad (5th generation or later), iPad Air (3rd generation), iPad mini (5th generation), or iPod touch (7th generation or later) is required. (51331268)
AVFoundation
New Features
- AVFoundation now supports encoding video with alpha channels using HEVC. Videos encoded in this manner are broadly supported in AVFoundation APIs, and by Safari within web pages. Technical details of the format can be found in the Interoperability Profile specification. (8045917)
Core Haptics
Known Issues
- By default, haptics are disabled when microphone recording begins. You can override this by setting the
AVAudioSessionpropertyallowHapticsAndSystemSoundsDuringRecordingtotruebefore activating its audio session. (25811898) - Events — such as
audioContinuous,hapticContinuous, andaudioCustom— can’t be resumed during the event; no output occurs for that event, only for subsequent events. This applies to playback at a specific time offset, seeking, and resuming. (29274583) CHHapticDynamicParameterinstances with nonzero relative times that are sent as part of asendParameters(_:atTime:)call on aCHHapticAdvancedPatternPlayerwith theatTimeparameter set to0.0are incorrectly applied at the beginning of theCHHapticPattern, instead of the expected nonzero relative time. This doesn’t occur on aCHHapticPatternPlayer. (46316890)- Both vibrations generated through
AudioServicesPlaySystemSound(_:)and vibration patterns generated through the user-created tap-to-vibrate UI are attenuated when compared to prior versions of iOS. (47448156) - Parameter Curves are not supported with a
CHHapticAdvancedPatternPlayer, only aCHHapticPatternPlayer. No error is generated when aCHHapticPatterncontaining a Parameter Curve is passed to aCHHapticAdvancedPatternPlayer. (47891515) - Brief audio distortion occurs when starting a Playback category app such as Music in the background. For example, brief distortion occurs if you start the app from Control Center while Core Haptics audio playback using a
playAndRecordaudio session is already underway. (48121467) - Following any decompression to uncompressed floating-point samples, the total limit on all
audioCustomresources per process is eight megabytes. (48659023) - Multiple overlapping Parameter Curves for the same
CHHapticDynamicParameter.IDmight result in playback artifacts. (50026384) - The maximum duration for a
hapticContinuoushaptic event is 30 seconds. Events exceeding this limit can be constructed and accepted byCHHapticPatternPlayer, but haptic playback will fade out after 30 seconds. (51322525)
Core Image
New Features
- The
init(imageURL:options:)andinit(imageData:options:)initializers no longer support RAW version 5 and earlier. Version 6 and later remain supported. (50911303) - Added new APIs for instantiating and modifying the built-in Core Image filters.
- The
CICoreMLModelfilter is enhanced to support models with an input or output of typeMLFeatureType.multiArray. - Metal
CIKernelinstances support arguments with arbitrarily structured data. - Metal
CIKernelinstances support returning a group of 2 × 2 pixels. - The integer values of
CIFormatsymbols, such asARGB8, have changed to a new set of values that are consistent across platforms. The former values remain supported for backward compatibility; however, you should avoid dependancies on specific numerical values.
Find My
Known Issues
- When performing an action in Find My that generates an email, you might see references to the Find My Friends and Find My iPhone apps. (51123613)
- While iOS & iPadOS 13 remains in beta, offline-finding capability is limited.
iCloud
Known Issues
- You might be unable to delete the Recovered Files folder in On My iPad/iPhone. (54785368)Workaround: Back up your device, erase it, restore from backup, then try again.
- After updating to iOS 13 beta 6 or later, iCloud Drive might synchronize for an extended period of time. If you notice any missing files, they can be found in a Recovered Files folder under On My iPhone/iPad within the Files app. (53772753)
- When creating a new Pages, Numbers, or Keynote document in a shared folder, you might see the message: “Couldn’t connect to iCloud.” (50827963)Workaround: Close and reopen the document.
New Features
- Ignore Blocked Senders can now be enabled in Settings > Mail. The blocked contacts list is shared with Messages, FaceTime, and Phone. (50775961)
Networking
New Features
- To enhance security,
URLSessionno longer sniffs the MIME type when the server sendsContent-Type: application/octet-stream. (7820658) NSURLRequest.CachePolicy.reloadRevalidatingCacheDataandNSURLRequest.CachePolicy.reloadIgnoringLocalAndRemoteCacheDataAPIs are now available. (49660334)- Starting with iOS 13 beta 4, the copy attribute of the
httpBodyStreamproperty ofNSMutableURLRequestis enforced. If the body data is mutated after the property setter has been called, data sent in the HTTP request won’t include that mutation. Invoking the property getter no longer returns aNSMutableDatareference, even when the setter was invoked with data of that type. As of iOS 13 beta 5, apps built using the iOS 12 SDK or previous SDKs use the legacy behavior. (53427882) - The
CNCopyCurrentNetworkInfoAPI has changed to address privacy. Please refer to the updated API documentation and headers for more details. (52707167) - All
URLSessionTaskinstances with aGETHTTP method that contain a body now produce the errorNSURLErrorDataLengthExceedsMaximum. (46025234)
Deprecations
- Removed support for FTP and File URL schemes for Proxy Automatic Configuration (PAC). HTTP and HTTPS are the only supported URL schemes for PAC. This affects all PAC configurations including, but not limited to, configurations set using Settings, System Preferences, Profiles, and
URLSessionAPIs such asconnectionProxyDictionaryandCFNetworkExecuteProxyAutoConfigurationURL(_:_:_:_:). (28578280) - The
URLSessionandNSURLConnectionAPIs no longer support SPDY. Servers should use HTTP 2 or HTTP 1.1. (43391641)
RealityKit
Known Issues
- The camera feed will remain visible at the base of objects loaded from a Reality File when
ARView.Environment.Backgroundis set toARView.Environment.Background.skybox(_:)(53715030)Workaround: Turn off grounding shadows when setting the background toARView.Environment.Background.skybox(_:)by settingARView.RenderOptionstodisableGroundingShadows.
Screen Time
Known Issues
- If you enable Share Across Devices, Screen Time settings don’t sync with iCloud until your iOS device is restarted. Any edits you make to your Screen Time settings on that device before restarting are lost. (50194586)
Sidecar
Known Issues
- If you update to iPadOS 13.1 beta 2, you will be unable to use Sidecar until a future version of macOS Catalina beta is released. (54903543)
Siri
Known Issues
- The
supportsOnDeviceRecognitionproperty always returnsfalsethe first time it’s accessed. After a few seconds, accessing it again returns the correct value. (47822242) - Shortcuts opened on iOS & iPadOS 13 beta are automatically upgraded and can no longer be opened on iOS 12. If a device with iOS 12 and a device with iOS 13 share an iCloud account, shortcuts might become unusable on the device running iOS 12. (50873839)Workaround: Disable iCloud Sync between devices running iOS & iPadOS 13 beta and devices running iOS 12.
- Currently, the only supported response for
INSearchForMediaIntentisINSearchForMediaIntentResponseCode.continueInApp. (51010311)
SwiftUI
New Features
- You can now create a
Colorfrom aUIColororNSColor. (49833933) NSManagedObjectnow conforms toObservableObject. The new@FetchRequestproperty wrapper can drive views from the results of a fetch request, andmanagedObjectContextis now included in the environment. (50280673)- Gesture modifiers are renamed for consistency. For example,
tapAction(count:_:)is renamedonTapGesture(count:perform:), andlongPressAction(minimumDuration:maximumDistance:_:pressing:)is renamedonLongPressGesture(minimumDuration:maximumDistance:pressing:perform:). (50395282) Textnow has a default line limit ofnilso that it wraps by default. (51147116)ContentSizeCategoryand several other enumerations are nowCaseIterable. (51168712)SegmentedControlis now a style ofPicker. (51769046)BindableObjectis replaced by theObservableObjectprotocol from the Combine framework. (50800624)You can manually conform toObservableObjectby defining anobjectWillChangepublisher that emits before the object changes. However, by default,ObservableObjectautomatically synthesizesobjectWillChangeand emits before any@Publishedproperties change.// RoomStore.swift import Foundation class RoomStore: ObservableObject { @Published var rooms: [Room] = [] } struct Room: Identifiable { var id: UUID var name: String var capacity: Int var hasVideo: Bool } // ContentView.swift import SwiftUI struct ContentView: View { @ObservedObject var store: RoomStore var body: some View { NavigationView { List(store.rooms) { room in RoomCell(room: room) } .navigationBarTitle("Rooms") } } }@ObjectBindingis replaced by@ObservedObject.- The
Identifiableprotocol is now part of the Swift standard library. As a result, your model files no longer need to import the SwiftUI framework. (SE-0261) - The
EnvironmentValuesstructure has four new properties for reading accessibility values from the environment:accessibilityDifferentiateWithoutColor,accessibilityReduceTransparency,accessibilityReduceMotion, andaccessibilityInvertColors. (51712481) - The
color(_:)modifier forTextis renamedforegroundColor(_:)for consistency with the more generalforegroundColor(_:)view modifier. (50391847) - The
BindableObjectprotocol’s requirement is nowwillChangeinstead ofdidChange, and should now be sent before the object changes rather than after it changes. This change allows for improved coalescing of change notifications. (51580731) - The
RangeReplaceableCollectionprotocol is extended to include aremove(atOffsets:)method and theMutableCollectionprotocol is extended to include amove(fromOffsets:toOffset:)method. Each new method takesIndexSetinstances that you use with theonMove(perform:)andonDelete(perform:)modifiers onForEachviews. (51991601) - Added improved presentation modifiers:
sheet(isPresented:onDismiss:content:),actionSheet(isPresented:content:), andalert(isPresented:content:)— along withisPresentedin the environment — replace the existingpresentation(_:),Sheet,Modal, andPresentationLinktypes. (52075730) - Updated the APIs for creating animations. The basic animations are now named after the curve type — such as linear and easeInOut. The interpolation-based
spring(mass:stiffness:damping:initialVelocity:)animation is nowinterpolatingSpring(mass:stiffness:damping:initialVelocity:), andfluidSpring(stiffness:dampingFraction:blendDuration:timestep:idleThreshold:)is nowspring(response:dampingFraction:blendDuration:)orinteractiveSpring(response:dampingFraction:blendDuration:), depending on whether or not the animation is driven interactively. (50280375) - Added an initializer for creating a
Fontfrom aCTFont. (51849885) - You can style a
NavigationViewusing two new style properties:StackNavigationViewStyleandDoubleColumnNavigationViewStyle. By default, navigation views on iPhone and Apple TV visually reflect a navigation stack, while on iPad and Mac, a split-view styled navigation view displays. (51636729)When using theDoubleColumnNavigationViewStylestyle, you can provide two views when creating a navigation view — the first is the master and the second is the detail. For example:NavigationView { MyMasterView() MyDetailView() } .navigationViewStyle(DoubleColumnNavigationViewStyle())
Known Issues
- Apps containing SwiftUI inside a Swift package might not run on versions of iOS earlier than iOS 13. (53706729)Workaround: When back-deploying to an OS which doesn’t contain the SwiftUI framework, add the
-weak_framework SwiftUIflag to the Other Linker Flags setting in the Build Settings tab. See Frameworks and Weak Linking for more information on weak linking a framework. This workaround doesn’t apply when using dynamically linked Swift packages which import SwiftUI.
Deprecations
- SwiftUI APIs deprecated in previous versions of iOS 13 beta have been removed. (53310683)
NavigationDestinationLinkandDynamicNavigationDestinationLinkare deprecated; their functionality is now included inNavigationLink. (50630794)- The
Lengthtype is replaced byCGFloat. (50654095) TabbedViewis now namedTabView. (51012120)HAlignmentandVAlignmentare now deprecated, use the more flexibleHorizontalAlignmentorVerticalAlignmenttypes instead and useTextAlignmentfor text. (51190531)- The
SelectionManagerprotocol is removed, useOptionalandSetinstances directly for selection. (51557694) - The
isPresentedenvironment value is deprecated and replaced with the more generalpresentationModevalue. (51641238) - The
StaticMemberprotocol is deprecated. Use protocol-conforming types directly instead. For example, use an instance ofWheelPickerStyledirectly rather than thewheelstatic member.(52911961) - Complex overloads for the
background(_:alignment:)andborder(_:width:)modifiers are deprecated. Use shapes in abackground(_:alignment:)oroverlay(_:alignment:)to draw these instead. (53067530) - SwiftUI APIs deprecated in previous betas are now removed. (52587863)
- The
identified(by:)method on theCollectionprotocol is deprecated in favor of dedicatedinit(_:id:selection:rowContent:)andinit(_:id:content:)initializers. (52976883, 52029393)The retroactive conformance ofIntto the Identifiable protocol is removed. Change any code that relies on this conformance to pass\.selfto theidparameter of the relevant initializer. Constant ranges ofIntcontinue to be accepted:List(0..<5) { Text("Rooms") }However, you shouldn’t pass a range that changes at runtime. If you use a variable that changes at runtime to define the range, the list displays views according to the initial range and ignores any subsequent updates to the range. - Several extensions to the
Bindingstructure are removed. (51624798)If you have code such as the following:struct LandmarkList: View { var landmark: [Landmark] @Binding var favorites: Set<Landmark> var body: some View { List(landmarks) { landmark in Toggle(landmark.name, isOn: self.$favorites.contains(landmarkID)) } } }Define the following subscript on theSetstructure:extension Set { subscript(member: Element) -> Bool { get { contains(member) } set { if newValue { insert(member) } else { remove(member) } } } }Then, changeself.$favorites.contains(landmarkID)toself.$favorites[landmarkID]. - The
Bindingstructure’s conditional conformance to theCollectionprotocol is removed. (51624798)If you have code such as the following:struct LandmarkList: View { @Binding var landmark: [Landmark] var body: some View { List(landmarks) { landmark in Toggle(landmark.value.name, isOn: landmark[\.isFavorite]) } } }Define the following collection type:struct IndexedCollection<Base: RandomAccessCollection>: RandomAccessCollection { typealias Index = Base.Index typealias Element = (index: Index, element: Base.Element) let base: Base var startIndex: Index { base.startIndex } var endIndex: Index { base.startIndex } func index(after i: Index) -> Index { base.index(after: i) } func index(before i: Index) -> Index { base.index(before: i) } func index(_ i: Index, offsetBy distance: Int) -> Index { base.index(i, offsetBy: distance) } subscript(position: Index) -> Element { (index: position, element: base[position]) } } extension RandomAccessCollection { func indexed() -> IndexedCollection<Self> { IndexedCollection(base: self) } }Then, update your code to:struct LandmarkList: View { @Binding var landmarks: [Landmark] var body: some View { List(landmarks.indexed(), id: \.1.id) { (index, landmark) in Toggle(landmark.name, isOn: self.$landmarks[index].isFavorite) } } } - The
relativeWidth(_:),relativeHeight(_:), andrelativeSize(width:height:)modifiers are deprecated. Use other modifiers likeframe(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)instead. (51494692)
Third-Party Apps
Known Issues
- You might be unable to stream to a Chromecast device. (51334673)
UIKit
New Features
- The
UITableViewCellclass no longer changes thebackgroundColororisOpaqueproperties of thecontentViewand any of its subviews when cells become highlighted or selected. If you are setting an opaquebackgroundColoron any subviews of the cell inside (and including) thecontentView, the appearance when the cell becomes highlighted or selected might be affected. The simplest way to resolve any issues with your subviews is to ensure theirbackgroundColoris set tonilorclear, and theiropaqueproperty isfalse. However, if needed you can override thesetHighlighted(_:animated:)andsetSelected(_:animated:)methods to manually change these properties on your subviews when moving to or from the highlighted and selected states. (13955336) - Since iOS 8, using
UISearchControllerwithUINavigationControllerhas required setting thedefinesPresentationContextproperty of the top view controller totrue. Failure to do so leads to subtle bugs that can be hard to detect and debug. Starting in iOS & iPadOS 13 beta, if a view controller’snavigationItemhas a non-nilsearchController, when the view controller is shown in a navigation controller,UINavigationControllerautomatically sets that view controller’sdefinesPresentationContextproperty totrue. If you are targeting earlier versions of iOS, set this property before your search controller becomes active. (31338934) - The
UIRefreshControlclass no longer directly modifies thecontentInsetof its scroll view. Instead, its adjustments to the content inset will be incorporated into the scroll view’sadjustedContentInset. The only exception is when the scroll view’scontentInsetAdjustmentBehavioris set toUIScrollView.ContentInsetAdjustmentBehavior.never, in which case theUIRefreshControlinstance will modify thecontentInsetdirectly as it did in previous releases. (35866834) - If you implement self-sizing cells in a
UITableViewby overridingsizeThatFits(_:)without using Auto Layout, the height you return is interpreted as the desired height for thecontentViewof the cell, andUITableViewCellautomatically adds any additional height needed to allow room for the cell separator. If you implement manual self-sizing this way, the cell’scontentViewwidth is guaranteed to be accurate for you to use in manual layout calculations whensizeThatFits(_:)is called on theUITableViewCell. (39742612) - Trait environments, such as views and view controllers, now have their
traitCollectionproperty populated with traits during initialization. These initial traits represent a prediction of the ultimate traits that the trait environment will receive when it gets added to the hierarchy. Because the traits that are populated during initialization are just a prediction, they might differ from the traits that are received once actually in the hierarchy. Therefore, when possible you should wait to perform work that uses thetraitCollectionuntil the view, or view controller’s view, has moved into the hierarchy — meaningwindowreturns a non-nilvalue — so that you don’t have to throw away any work done using the predicted traits if the actual traits are different. The best time to use thetraitCollectionis during layout, such as insidelayoutSubviews(),viewWillLayoutSubviews(), orviewDidLayoutSubviews(). - The
traitCollectionDidChange(_:)method is only called when the value of a trait changes. Importantly, because the trait collection is now initialized to a prediction of the ultimate traits in the destination hierarchy, when the initial predicted traits match the ultimate traits in the hierarchy,traitCollectionDidChange(_:)will not be called when the trait environment is added to the hierarchy. BecausetraitCollectionDidChange(_:)is intended to be an invalidation callback to notify you that one or more traits changed, audit your existing implementations of this method, as well as theUIContentContainermethodwillTransition(to:with:), for places where you might have been relying on it to trigger initial setup. The best place to lazily perform work that uses thetraitCollectionis inside one of thelayoutSubviewsmethods discussed above, but remember that these layout methods are called any time layout occurs so be sure to avoid repeating work when you don’t need to. (46818941) - You can now enable debug logging to easily see when
traitCollectionDidChange(_:)orwillTransition(to:with:)is called on your own classes. Turn on the logging by using the following launch argument:-UITraitCollectionChangeLoggingEnabled YES. You might want to temporarily disable the Main Thread Checker while using this launch argument and running your app from Xcode to avoid extra log messages for unrelated classes. (47858564) - The
UITableViewCellclass’scontentViewproperty is always laid out edge-to-edge with adjacent accessories, both on the leading and the trailing side. This streamlines the layout code so developers who want the correct default offset no longer have to align their content with the content view border or the layout margin depending on whether there is an accessory on the trailing side or not. You should now always lay out their code on the layout margins of the cell’s content view to get the default system insets. These insets will be adjusted automatically based on the accessories visible in the cell to match the system’s default spacing. (48214114) - You can now invoke a custom initializer from a creation block that’s passed through
instantiateInitialViewController(creator:)orinstantiateViewController(identifier:creator:). This makes it possible for you to initialize view controllers with additional context and arguments, while taking advantage of defining them in a storyboard through Interface Builder. A custom controller initializer must call itssuper.init(coder:)method and pass the coder argument that it receives through the creation block. (48313869)
Known Issues
- Specifying
UIWindowScene.DestructionRequestOptionsin Swift is currently unavailable. (51036709)
Voice Analytics
Known Issues
- Voice Analytics is currently available only when using server based speech recognition. (53604093)
Watch
Known Issues
- Complications might disappear from Apple Watch after updating to iOS 13 beta if your watch isn’t running watchOS 6 beta. (50507942)
Xcode
New Features
CAMetalLayeris now available in Simulator. (45101325)

